ladim 2.0.5__tar.gz → 2.0.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ladim-2.0.5 → ladim-2.0.6}/PKG-INFO +6 -4
- {ladim-2.0.5 → ladim-2.0.6}/ladim/__init__.py +1 -1
- {ladim-2.0.5 → ladim-2.0.6}/ladim/forcing.py +12 -16
- ladim-2.0.6/ladim/grid.py +634 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/gridforce/ROMS.py +11 -4
- ladim-2.0.6/ladim/ibms/__init__.py +26 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/main.py +1 -1
- ladim-2.0.6/ladim/model.py +144 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/output.py +21 -22
- {ladim-2.0.5 → ladim-2.0.6}/ladim/release.py +18 -21
- {ladim-2.0.5 → ladim-2.0.6}/ladim/solver.py +6 -6
- {ladim-2.0.5 → ladim-2.0.6}/ladim/state.py +12 -33
- {ladim-2.0.5 → ladim-2.0.6}/ladim/tracker.py +8 -11
- {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/PKG-INFO +6 -4
- {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/SOURCES.txt +1 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/requires.txt +5 -3
- {ladim-2.0.5 → ladim-2.0.6}/setup.cfg +5 -3
- ladim-2.0.6/tests/test_grid.py +334 -0
- {ladim-2.0.5 → ladim-2.0.6}/tests/test_output.py +15 -18
- {ladim-2.0.5 → ladim-2.0.6}/tests/test_release.py +15 -17
- {ladim-2.0.5 → ladim-2.0.6}/tests/test_solver.py +21 -20
- ladim-2.0.5/ladim/grid.py +0 -89
- ladim-2.0.5/ladim/ibms/__init__.py +0 -21
- ladim-2.0.5/ladim/model.py +0 -145
- {ladim-2.0.5 → ladim-2.0.6}/LICENSE +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/README.md +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/__main__.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/config.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/gridforce/__init__.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/gridforce/analytical.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/gridforce/zROMS.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/ibms/light.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/plugins/__init__.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/sample.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim/utilities.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/dependency_links.txt +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/entry_points.txt +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/ladim.egg-info/top_level.txt +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/postladim/__init__.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/postladim/cellcount.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/postladim/kde_plot.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/postladim/particlefile.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/postladim/variable.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/pyproject.toml +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/tests/test_config.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/tests/test_forcing.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/tests/test_ladim.py +0 -0
- {ladim-2.0.5 → ladim-2.0.6}/tests/test_model.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: ladim
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.6
|
|
4
4
|
Summary: Lagrangian Advection and Diffusion Model
|
|
5
5
|
Home-page: https://github.com/pnsaevik/ladim
|
|
6
6
|
Author: Bjørn Ådlandsvik
|
|
@@ -17,12 +17,14 @@ Classifier: Operating System :: OS Independent
|
|
|
17
17
|
Requires-Python: >=3.7
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: numpy
|
|
21
|
-
Requires-Dist: pyyaml
|
|
22
20
|
Requires-Dist: netCDF4
|
|
21
|
+
Requires-Dist: numpy
|
|
23
22
|
Requires-Dist: pandas
|
|
24
|
-
Requires-Dist: xarray
|
|
25
23
|
Requires-Dist: pyarrow
|
|
24
|
+
Requires-Dist: pyproj
|
|
25
|
+
Requires-Dist: pyyaml
|
|
26
|
+
Requires-Dist: scipy
|
|
27
|
+
Requires-Dist: xarray
|
|
26
28
|
|
|
27
29
|
LADiM – the Lagrangian Advection and Diffusion Model
|
|
28
30
|
====================================================
|
|
@@ -2,19 +2,15 @@ from .model import Model, Module
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class Forcing(Module):
|
|
5
|
-
def __init__(self, model: Model):
|
|
6
|
-
super().__init__(model)
|
|
7
|
-
|
|
8
5
|
def velocity(self, X, Y, Z, tstep=0.0):
|
|
9
6
|
raise NotImplementedError
|
|
10
7
|
|
|
11
8
|
|
|
12
9
|
class RomsForcing(Forcing):
|
|
13
|
-
def __init__(self,
|
|
10
|
+
def __init__(self, file, variables=None, **conf):
|
|
14
11
|
"""
|
|
15
12
|
Forcing module which uses output data from the ROMS ocean model
|
|
16
13
|
|
|
17
|
-
:param model: Parent model
|
|
18
14
|
:param file: Glob pattern for the input files
|
|
19
15
|
:param variables: A mapping of variable names to interpolation
|
|
20
16
|
specifications. Each interpolaction specification consists of 0-4
|
|
@@ -34,14 +30,12 @@ class RomsForcing(Forcing):
|
|
|
34
30
|
|
|
35
31
|
:param conf: Legacy config dict
|
|
36
32
|
"""
|
|
37
|
-
super().__init__(model)
|
|
38
|
-
|
|
39
33
|
# Apply default interpolation configs
|
|
40
34
|
variables = variables or dict()
|
|
41
35
|
default_vars = dict(u="xt", v="yt", w="zt", temp="xyzt", salt="xyzt")
|
|
42
36
|
self.variables = {**default_vars, **variables}
|
|
43
37
|
|
|
44
|
-
grid_ref = GridReference(
|
|
38
|
+
grid_ref = GridReference()
|
|
45
39
|
legacy_conf = dict(
|
|
46
40
|
gridforce=dict(
|
|
47
41
|
input_file=file,
|
|
@@ -67,17 +61,19 @@ class RomsForcing(Forcing):
|
|
|
67
61
|
# self.U = self.forcing.U
|
|
68
62
|
# self.V = self.forcing.V
|
|
69
63
|
|
|
70
|
-
def update(self):
|
|
71
|
-
elapsed =
|
|
72
|
-
t = elapsed //
|
|
64
|
+
def update(self, model: Model):
|
|
65
|
+
elapsed = model.solver.time - model.solver.start
|
|
66
|
+
t = elapsed // model.solver.step
|
|
73
67
|
|
|
68
|
+
# noinspection PyProtectedMember
|
|
69
|
+
self.forcing._grid.modules = model
|
|
74
70
|
self.forcing.update(t)
|
|
75
71
|
|
|
76
72
|
# Update state variables by sampling the field
|
|
77
|
-
x, y, z =
|
|
73
|
+
x, y, z = model.state['X'], model.state['Y'], model.state['Z']
|
|
78
74
|
for v in self.variables:
|
|
79
|
-
if v in
|
|
80
|
-
|
|
75
|
+
if v in model.state:
|
|
76
|
+
model.state[v] = self.field(x, y, z, v)
|
|
81
77
|
|
|
82
78
|
def velocity(self, X, Y, Z, tstep=0.0):
|
|
83
79
|
return self.forcing.velocity(X, Y, Z, tstep=tstep)
|
|
@@ -90,8 +86,8 @@ class RomsForcing(Forcing):
|
|
|
90
86
|
|
|
91
87
|
|
|
92
88
|
class GridReference:
|
|
93
|
-
def __init__(self
|
|
94
|
-
self.modules =
|
|
89
|
+
def __init__(self):
|
|
90
|
+
self.modules = None
|
|
95
91
|
|
|
96
92
|
def __getattr__(self, item):
|
|
97
93
|
return getattr(self.modules.grid.grid, item)
|