jinns 1.5.0__py3-none-any.whl → 1.6.0__py3-none-any.whl
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.
- jinns/__init__.py +7 -7
- jinns/data/_AbstractDataGenerator.py +1 -1
- jinns/data/_Batchs.py +47 -13
- jinns/data/_CubicMeshPDENonStatio.py +203 -54
- jinns/data/_CubicMeshPDEStatio.py +190 -54
- jinns/data/_DataGeneratorODE.py +48 -22
- jinns/data/_DataGeneratorObservations.py +75 -32
- jinns/data/_DataGeneratorParameter.py +152 -101
- jinns/data/__init__.py +2 -1
- jinns/data/_utils.py +22 -10
- jinns/loss/_DynamicLoss.py +21 -20
- jinns/loss/_DynamicLossAbstract.py +51 -36
- jinns/loss/_LossODE.py +210 -191
- jinns/loss/_LossPDE.py +441 -368
- jinns/loss/_abstract_loss.py +60 -25
- jinns/loss/_loss_components.py +4 -25
- jinns/loss/_loss_utils.py +23 -0
- jinns/loss/_loss_weight_updates.py +6 -7
- jinns/loss/_loss_weights.py +34 -35
- jinns/nn/_abstract_pinn.py +0 -2
- jinns/nn/_hyperpinn.py +34 -23
- jinns/nn/_mlp.py +5 -4
- jinns/nn/_pinn.py +1 -16
- jinns/nn/_ppinn.py +5 -16
- jinns/nn/_save_load.py +11 -4
- jinns/nn/_spinn.py +1 -16
- jinns/nn/_spinn_mlp.py +5 -5
- jinns/nn/_utils.py +33 -38
- jinns/parameters/__init__.py +3 -1
- jinns/parameters/_derivative_keys.py +99 -41
- jinns/parameters/_params.py +58 -25
- jinns/solver/_solve.py +14 -8
- jinns/utils/_DictToModuleMeta.py +66 -0
- jinns/utils/_ItemizableModule.py +19 -0
- jinns/utils/__init__.py +2 -1
- jinns/utils/_types.py +25 -15
- {jinns-1.5.0.dist-info → jinns-1.6.0.dist-info}/METADATA +2 -2
- jinns-1.6.0.dist-info/RECORD +57 -0
- jinns-1.5.0.dist-info/RECORD +0 -55
- {jinns-1.5.0.dist-info → jinns-1.6.0.dist-info}/WHEEL +0 -0
- {jinns-1.5.0.dist-info → jinns-1.6.0.dist-info}/licenses/AUTHORS +0 -0
- {jinns-1.5.0.dist-info → jinns-1.6.0.dist-info}/licenses/LICENSE +0 -0
- {jinns-1.5.0.dist-info → jinns-1.6.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
import equinox as eqx
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class DictToModuleMeta(type):
|
|
6
|
+
"""
|
|
7
|
+
A Metaclass based solution to handle the fact that we only
|
|
8
|
+
want one type to be created for EqParams.
|
|
9
|
+
If we were to create a new **class type** (despite same name) each time we
|
|
10
|
+
create a new Params object, nothing would be broadcastable in terms of jax
|
|
11
|
+
tree utils operations and this would be useless. The difficulty comes from
|
|
12
|
+
the fact that we need to instanciate from this same class at different
|
|
13
|
+
moments of the jinns workflow eg: parameter creation, derivative keys
|
|
14
|
+
creations, tracked parameter designation, etc. (ie. each time a Params
|
|
15
|
+
class is instanciated whatever its usage, we need the same EqParams class
|
|
16
|
+
to be instanciated)
|
|
17
|
+
|
|
18
|
+
This is inspired by the Singleton pattern in Python
|
|
19
|
+
(https://stackoverflow.com/a/10362179)
|
|
20
|
+
|
|
21
|
+
Here we need the call of a metaclass because as explained in
|
|
22
|
+
https://stackoverflow.com/a/45536640). To quote from the answer
|
|
23
|
+
Metaclasses implement how the class will behave (not the instance). So when you look at the instance creation:
|
|
24
|
+
`x = Foo()`
|
|
25
|
+
This literally "calls" the class Foo. That's why __call__ of the metaclass
|
|
26
|
+
is invoked before the __new__ and
|
|
27
|
+
__init__ methods of your class initialize the instance.
|
|
28
|
+
Other viewpoint: Metaclasses,as well as classes making use of those
|
|
29
|
+
metaclasses, are created when the lines of code containing
|
|
30
|
+
the class statement body is executed
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
def __init__(self, *args, **kwargs):
|
|
34
|
+
super(DictToModuleMeta, self).__init__(*args, **kwargs)
|
|
35
|
+
self._class = None
|
|
36
|
+
|
|
37
|
+
def __call__(self, d: dict[str, Any], class_name: str | None = None) -> eqx.Module:
|
|
38
|
+
"""
|
|
39
|
+
Notably, once the class template is registered (after the first call to
|
|
40
|
+
EqParams()), all calls with different keys in `d` will fail.
|
|
41
|
+
"""
|
|
42
|
+
if self._class is None and class_name is not None:
|
|
43
|
+
self._class = type(
|
|
44
|
+
class_name,
|
|
45
|
+
(eqx.Module,),
|
|
46
|
+
{"__annotations__": {k: type(v) for k, v in d.items()}},
|
|
47
|
+
)
|
|
48
|
+
try:
|
|
49
|
+
return self._class(**d) # type: ignore
|
|
50
|
+
except TypeError as _:
|
|
51
|
+
print(
|
|
52
|
+
"DictToModuleMeta has been created with the fields"
|
|
53
|
+
f"{tuple(k for k in self._class.__annotations__.keys())}"
|
|
54
|
+
f" but an instanciation is resquested with fields={tuple(k for k in d.keys())}"
|
|
55
|
+
" which results in an error"
|
|
56
|
+
)
|
|
57
|
+
raise ValueError
|
|
58
|
+
|
|
59
|
+
def clear(cls) -> None:
|
|
60
|
+
"""
|
|
61
|
+
The current Metaclass implementation freezes the list of equation parameters inside a Python session;
|
|
62
|
+
only one EqParams annotation can exist at a given time. Use `EqParams.clear()` to reset.
|
|
63
|
+
Also useful for pytest where stuff is not complety reset after tests
|
|
64
|
+
Taken from https://stackoverflow.com/a/50065732
|
|
65
|
+
"""
|
|
66
|
+
cls._class = None
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from dataclasses import fields
|
|
2
|
+
from typing import Any, ItemsView
|
|
3
|
+
import equinox as eqx
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ItemizableModule(eqx.Module):
|
|
7
|
+
def items(self) -> ItemsView[str, Any]:
|
|
8
|
+
"""
|
|
9
|
+
For the dataclass to be iterated like a dictionary.
|
|
10
|
+
Practical and retrocompatible with old code when loss components were
|
|
11
|
+
dictionaries
|
|
12
|
+
|
|
13
|
+
About the type hint: https://stackoverflow.com/questions/73022688/type-annotation-for-dict-items
|
|
14
|
+
"""
|
|
15
|
+
return {
|
|
16
|
+
field.name: getattr(self, field.name)
|
|
17
|
+
for field in fields(self)
|
|
18
|
+
if getattr(self, field.name) is not None
|
|
19
|
+
}.items()
|
jinns/utils/__init__.py
CHANGED
jinns/utils/_types.py
CHANGED
|
@@ -2,30 +2,40 @@ from __future__ import (
|
|
|
2
2
|
annotations,
|
|
3
3
|
) # https://docs.python.org/3/library/typing.html#constant
|
|
4
4
|
|
|
5
|
-
from typing import TypeAlias, TYPE_CHECKING, Callable
|
|
5
|
+
from typing import TypeAlias, TYPE_CHECKING, Callable, TypeVar
|
|
6
6
|
from jaxtyping import Float, Array
|
|
7
7
|
|
|
8
|
+
from jinns.data._Batchs import ODEBatch, PDEStatioBatch, PDENonStatioBatch, ObsBatchDict
|
|
9
|
+
from jinns.loss._loss_weights import (
|
|
10
|
+
LossWeightsODE,
|
|
11
|
+
LossWeightsPDEStatio,
|
|
12
|
+
LossWeightsPDENonStatio,
|
|
13
|
+
)
|
|
14
|
+
from jinns.loss._loss_components import (
|
|
15
|
+
ODEComponents,
|
|
16
|
+
PDEStatioComponents,
|
|
17
|
+
PDENonStatioComponents,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
AnyBatch: TypeAlias = ODEBatch | PDENonStatioBatch | PDEStatioBatch | ObsBatchDict
|
|
21
|
+
|
|
22
|
+
AnyLossWeights: TypeAlias = (
|
|
23
|
+
LossWeightsODE | LossWeightsPDEStatio | LossWeightsPDENonStatio
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
# Note that syntax change starting from 3.12
|
|
27
|
+
_T = TypeVar("_T")
|
|
28
|
+
AnyLossComponents: TypeAlias = (
|
|
29
|
+
ODEComponents[_T] | PDEStatioComponents[_T] | PDENonStatioComponents[_T]
|
|
30
|
+
)
|
|
31
|
+
|
|
8
32
|
if TYPE_CHECKING:
|
|
9
|
-
from jinns.data._Batchs import ODEBatch, PDEStatioBatch, PDENonStatioBatch
|
|
10
33
|
from jinns.loss._LossODE import LossODE
|
|
11
34
|
from jinns.loss._LossPDE import LossPDEStatio, LossPDENonStatio
|
|
12
|
-
from jinns.loss._loss_components import (
|
|
13
|
-
ODEComponents,
|
|
14
|
-
PDEStatioComponents,
|
|
15
|
-
PDENonStatioComponents,
|
|
16
|
-
)
|
|
17
35
|
|
|
18
36
|
# Here we define types available for the whole package
|
|
19
37
|
BoundaryConditionFun: TypeAlias = Callable[
|
|
20
38
|
[Float[Array, " dim"] | Float[Array, " dim + 1"]], Float[Array, " dim_solution"]
|
|
21
39
|
]
|
|
22
40
|
|
|
23
|
-
AnyBatch: TypeAlias = ODEBatch | PDENonStatioBatch | PDEStatioBatch
|
|
24
41
|
AnyLoss: TypeAlias = LossODE | LossPDEStatio | LossPDENonStatio
|
|
25
|
-
|
|
26
|
-
# here we would like a type from 3.12
|
|
27
|
-
# (https://typing.python.org/en/latest/spec/aliases.html#type-statement) so
|
|
28
|
-
# that we could have a generic AnyLossComponents
|
|
29
|
-
AnyLossComponents: TypeAlias = (
|
|
30
|
-
ODEComponents | PDEStatioComponents | PDENonStatioComponents
|
|
31
|
-
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jinns
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.0
|
|
4
4
|
Summary: Physics Informed Neural Network with JAX
|
|
5
5
|
Author-email: Hugo Gangloff <hugo.gangloff@inrae.fr>, Nicolas Jouvin <nicolas.jouvin@inrae.fr>
|
|
6
6
|
Maintainer-email: Hugo Gangloff <hugo.gangloff@inrae.fr>, Nicolas Jouvin <nicolas.jouvin@inrae.fr>
|
|
@@ -10,7 +10,7 @@ Project-URL: Documentation, https://mia_jinns.gitlab.io/jinns/index.html
|
|
|
10
10
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Programming Language :: Python
|
|
13
|
-
Requires-Python: >=3.
|
|
13
|
+
Requires-Python: >=3.11
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENSE
|
|
16
16
|
License-File: AUTHORS
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
jinns/__init__.py,sha256=Tjp5z0Mnd1nscvJaXnxZb4lEYbI0cpN6OPgCZ-Swo74,453
|
|
2
|
+
jinns/data/_AbstractDataGenerator.py,sha256=le5plNhOE7hV72SC6p2xhWxljnGeStPc2kitzeMR_ts,535
|
|
3
|
+
jinns/data/_Batchs.py,sha256=UZfJWIKAFLQJxOtWN1ybJdoSQCO6PWk3SAgV9YmNVnI,2809
|
|
4
|
+
jinns/data/_CubicMeshPDENonStatio.py,sha256=dtev6j7HuVZ_IBGnKVKOlJTyZVjnW_8G1VRGpcL40VU,22922
|
|
5
|
+
jinns/data/_CubicMeshPDEStatio.py,sha256=g4H9wI0FkA9sdnlSxp00QArq9IjhPrmsGgSleLdNpI4,23314
|
|
6
|
+
jinns/data/_DataGeneratorODE.py,sha256=XOGeX9m5J9CkkGx2alJ5G7FZYGn5cBUaFpO-3-MKvdc,7724
|
|
7
|
+
jinns/data/_DataGeneratorObservations.py,sha256=gTiilF4nTY6PDAHQc5HogMWw7g266gwnN0pxSuF6B9A,9474
|
|
8
|
+
jinns/data/_DataGeneratorParameter.py,sha256=m7WCWBtmNptF8qQSWGPTQEFVzkJb8kJpidKAFBmoBiQ,10205
|
|
9
|
+
jinns/data/__init__.py,sha256=DEzEmoD5TmjHCaG6pS2jmFDzuhZn1ZDpFdVa2v0jCe0,703
|
|
10
|
+
jinns/data/_utils.py,sha256=xKHf7NksJ_AmrtEcpJsh7WSEvI3Yk98_cM5kmXSfmx0,5596
|
|
11
|
+
jinns/experimental/__init__.py,sha256=DT9e57zbjfzPeRnXemGUqnGd--MhV77FspChT0z4YrE,410
|
|
12
|
+
jinns/experimental/_diffrax_solver.py,sha256=upMr3kTTNrxEiSUO_oLvCXcjS9lPxSjvbB81h3qlhaU,6813
|
|
13
|
+
jinns/loss/_DynamicLoss.py,sha256=FXVraH97tIWA5ByO-V-r54Nhwd_EvHOfr0e2qjrfdf0,22667
|
|
14
|
+
jinns/loss/_DynamicLossAbstract.py,sha256=bTiDZHqkHDdvfj6hcjPcESYzwzqOd2LtR_h7GPAqQpY,13602
|
|
15
|
+
jinns/loss/_LossODE.py,sha256=iIW9IGlmPH8coAGe28ysDC75PGrjrRM4YnJN16Cqq3o,15029
|
|
16
|
+
jinns/loss/_LossPDE.py,sha256=nScI0gOB6mK1r5oq-KfAm_Wmcb_frOFc1eyjLnCaYqA,38491
|
|
17
|
+
jinns/loss/__init__.py,sha256=z5xYgBipNFf66__5BqQc6R_8r4F6A3TXL60YjsM8Osk,1287
|
|
18
|
+
jinns/loss/_abstract_loss.py,sha256=yUaulxRL9Pc6P2J6icP_-In-yoeX-yRsOla8kzixxjE,6285
|
|
19
|
+
jinns/loss/_boundary_conditions.py,sha256=9HGw1cGLfmEilP4V4B2T0zl0YP1kNtrtXVLQNiBmWgc,12464
|
|
20
|
+
jinns/loss/_loss_components.py,sha256=Y5GGNuAS_tHl-AzIMBxf3yKj0N2QCdVdTY4jC7NDuic,442
|
|
21
|
+
jinns/loss/_loss_utils.py,sha256=eJ4JcBm396LHx7Tti88ZQrLcKqVL1oSfFGT23VNkytQ,11949
|
|
22
|
+
jinns/loss/_loss_weight_updates.py,sha256=Q5RJkulMjP5G3twKEGmc46QeQJSCb7yyS7OudzRqQkY,6775
|
|
23
|
+
jinns/loss/_loss_weights.py,sha256=x0URuCaFXULlVDwlL9ZEy45L33tj1Fa0VJUQlSPhGkA,2416
|
|
24
|
+
jinns/loss/_operators.py,sha256=Ds5yRH7hu-jaGRp7PYbt821BgYuEvgWHufWhYgdMjw0,22909
|
|
25
|
+
jinns/nn/__init__.py,sha256=gwE48oqB_FsSIE-hUvCLz0jPaqX350LBxzH6ueFWYk4,456
|
|
26
|
+
jinns/nn/_abstract_pinn.py,sha256=E17TFjxgs63BHl3dUKwajqkBuggVbyNVtovX0ePPzr4,602
|
|
27
|
+
jinns/nn/_hyperpinn.py,sha256=x_hBWqokBbURMOdIG_0EBNGJjxAzjlUZ4__fyb-uasA,20245
|
|
28
|
+
jinns/nn/_mlp.py,sha256=ajVWRTtGVnmRjuaylEMlsK-3H5LMqKDvhUsMNnH_rIM,8935
|
|
29
|
+
jinns/nn/_pinn.py,sha256=nRBIdjTir1ViI9hBO4_4DY6uS-1P8Xv-TDLU-O_qzTk,8332
|
|
30
|
+
jinns/nn/_ppinn.py,sha256=qBMenzj0TpapGxyl7nSWb6mER-Ny42JrcOd7Wld19hU,10144
|
|
31
|
+
jinns/nn/_save_load.py,sha256=4pGDPZPKzDmY5UzRtA_zxpDK4hFL2LuDxexWW2PnHtw,7656
|
|
32
|
+
jinns/nn/_spinn.py,sha256=a0ZsnzyXi-oNd6i8pAwF1tdjJQU51pbrGg608O6ykQw,4352
|
|
33
|
+
jinns/nn/_spinn_mlp.py,sha256=7w-WsdcoLHVWwkK2DtXRKRtSrcJkEXJ2_n27VmXI2j4,7651
|
|
34
|
+
jinns/nn/_utils.py,sha256=SoaYvNM6V7M3GcXK3diqO7B9_zoBXqSux2fsTOcouSA,1018
|
|
35
|
+
jinns/parameters/__init__.py,sha256=T_BhKT77X5nei2pYj-QIOKCyD6j2UCgSgAY3LnNdkCo,333
|
|
36
|
+
jinns/parameters/_derivative_keys.py,sha256=snyUGSX7RRrQ6kwtxZPS5U4stWj5Nj2RQ4RABGcInwo,20652
|
|
37
|
+
jinns/parameters/_params.py,sha256=kU_rql_Wb7MJQsBDDcIwOf7RZrxkMRikP1w5xpvnmVs,3953
|
|
38
|
+
jinns/plot/__init__.py,sha256=KPHX0Um4FbciZO1yD8kjZbkaT8tT964Y6SE2xCQ4eDU,135
|
|
39
|
+
jinns/plot/_plot.py,sha256=-A5auNeElaz2_8UzVQJQE4143ZFg0zgMjStU7kwttEY,11565
|
|
40
|
+
jinns/solver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
+
jinns/solver/_rar.py,sha256=vSVTnCGCusI1vTZCvIkP2_G8we44G_42yZHx2sOK9DE,10291
|
|
42
|
+
jinns/solver/_solve.py,sha256=XG7G0OdVGExRCZ84JEzT74NefZRdUP4VFQoKkw9e-C4,28650
|
|
43
|
+
jinns/solver/_utils.py,sha256=sM2UbVzYyjw24l4QSIR3IlynJTPGD_S08r8v0lXMxA8,5876
|
|
44
|
+
jinns/utils/_DictToModuleMeta.py,sha256=V3D3rN6rCi6NjI8Cht0PTgeSgLe9ji3PsAX5y1-vbHY,2977
|
|
45
|
+
jinns/utils/_ItemizableModule.py,sha256=KdjsisFddGOUTA7-1jXlrkFxnX5sIVdtyNDxOaEcEYw,634
|
|
46
|
+
jinns/utils/__init__.py,sha256=k2kWDahXsLhSlsbeB_W73WLaVSvPG_S6mrNG_5fW_Mo,121
|
|
47
|
+
jinns/utils/_containers.py,sha256=YShcrPKfj5_I9mn3NMAS4Ea9MhhyL7fjv0e3MRbITHg,1837
|
|
48
|
+
jinns/utils/_types.py,sha256=mmDKnZavLBRNHrfsa4w2KgZbm-3Xrlu3Vx_mJ9sKI78,1288
|
|
49
|
+
jinns/utils/_utils.py,sha256=M7NXX9ok-BkH5o_xo74PB1_Cc8XiDipSl51rq82dTH4,2821
|
|
50
|
+
jinns/validation/__init__.py,sha256=FTyUO-v1b8Tv-FDSQsntrH7zl9E0ENexqKMT_dFRkYo,124
|
|
51
|
+
jinns/validation/_validation.py,sha256=8p6sMKiBAvA6JNm65hjkMj0997LJ0BkyCREEh0AnPVE,4803
|
|
52
|
+
jinns-1.6.0.dist-info/licenses/AUTHORS,sha256=7NwCj9nU-HNG1asvy4qhQ2w7oZHrn-Lk5_wK_Ve7a3M,80
|
|
53
|
+
jinns-1.6.0.dist-info/licenses/LICENSE,sha256=BIAkGtXB59Q_BG8f6_OqtQ1BHPv60ggE9mpXJYz2dRM,11337
|
|
54
|
+
jinns-1.6.0.dist-info/METADATA,sha256=aRCwx1t_urD8T8szddlOYusL0KDpwvJ9Rlbzsw4AQN0,5314
|
|
55
|
+
jinns-1.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
56
|
+
jinns-1.6.0.dist-info/top_level.txt,sha256=RXbkr2hzy8WBE8aiRyrJYFqn3JeMJIhMdybLjjLTB9c,6
|
|
57
|
+
jinns-1.6.0.dist-info/RECORD,,
|
jinns-1.5.0.dist-info/RECORD
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
jinns/__init__.py,sha256=hyh3QKO2cQGK5cmvFYP0MrXb-tK_DM2T9CwLwO-sEX8,500
|
|
2
|
-
jinns/data/_AbstractDataGenerator.py,sha256=O61TBOyeOFKwf1xqKzFD4KwCWRDnm2XgyJ-kKY9fmB4,557
|
|
3
|
-
jinns/data/_Batchs.py,sha256=-DlD6Qag3zs5QbKtKAOvOzV7JOpNOqAm_P8cwo1dIZg,1574
|
|
4
|
-
jinns/data/_CubicMeshPDENonStatio.py,sha256=c_8czJpxSoEvgZ8LDpL2sqtF9dcW4ELNO4juEFMOxog,16400
|
|
5
|
-
jinns/data/_CubicMeshPDEStatio.py,sha256=stZ0Kbb7_VwFmWUSPs0P6a6qRj2Tu67p7sxEfb1Ajks,17865
|
|
6
|
-
jinns/data/_DataGeneratorODE.py,sha256=5RzUbQFEsooAZsocDw4wRgA_w5lJmDMuY4M6u79K-1c,7260
|
|
7
|
-
jinns/data/_DataGeneratorObservations.py,sha256=jknepLsJatSJHFq5lLMD-fFHkPGj5q286LEjE-vH24k,7738
|
|
8
|
-
jinns/data/_DataGeneratorParameter.py,sha256=IedX3jcOj7ZDW_18IAcRR75KVzQzo85z9SICIKDBJl4,8539
|
|
9
|
-
jinns/data/__init__.py,sha256=4b4eVsoGHV89m2kGDiAOHsrGialZQ6j5ja575qWwQHs,677
|
|
10
|
-
jinns/data/_utils.py,sha256=XxaLIg_HIgcB7ACBIhTpHbCT1HXKcDaY1NABncAYX1c,5223
|
|
11
|
-
jinns/experimental/__init__.py,sha256=DT9e57zbjfzPeRnXemGUqnGd--MhV77FspChT0z4YrE,410
|
|
12
|
-
jinns/experimental/_diffrax_solver.py,sha256=upMr3kTTNrxEiSUO_oLvCXcjS9lPxSjvbB81h3qlhaU,6813
|
|
13
|
-
jinns/loss/_DynamicLoss.py,sha256=4mb7OCP-cGZ_mG2MQ-AniddDcuBT78p4bQI7rZpwte4,22722
|
|
14
|
-
jinns/loss/_DynamicLossAbstract.py,sha256=QhHRgvtcT-ifHlOxTyXbjDtHk9UfPN2Si8s3v9nEQm4,12672
|
|
15
|
-
jinns/loss/_LossODE.py,sha256=DeejnU2ytgrOxUnwuVkQDWWRKJAgNQyjacTx-jT0xPA,13796
|
|
16
|
-
jinns/loss/_LossPDE.py,sha256=ycjWJ99SuXe9DV5nROSWyq--xcp2JJ2PGWxsdWyZZog,36942
|
|
17
|
-
jinns/loss/__init__.py,sha256=z5xYgBipNFf66__5BqQc6R_8r4F6A3TXL60YjsM8Osk,1287
|
|
18
|
-
jinns/loss/_abstract_loss.py,sha256=DMxn0SQe9PW-pq3p5Oqvb0YK3_ulLDOnoIXzK219GV4,4576
|
|
19
|
-
jinns/loss/_boundary_conditions.py,sha256=9HGw1cGLfmEilP4V4B2T0zl0YP1kNtrtXVLQNiBmWgc,12464
|
|
20
|
-
jinns/loss/_loss_components.py,sha256=MMzaGlaRqESPjRzT0j0WU9HAqWQSbIXpGAqM1xQCZHw,1106
|
|
21
|
-
jinns/loss/_loss_utils.py,sha256=R6PffBAtg6z9M8x1DFXmmqZpC095b9gZ_DB1phQxSuY,11168
|
|
22
|
-
jinns/loss/_loss_weight_updates.py,sha256=9Bwouh7shLyc_wrdzN6CYL0ZuQH81uEs-L6wCeiYFx8,6817
|
|
23
|
-
jinns/loss/_loss_weights.py,sha256=kII5WddORgeommFTudT3CSvhICpo6nSe47LclUgu_78,2429
|
|
24
|
-
jinns/loss/_operators.py,sha256=Ds5yRH7hu-jaGRp7PYbt821BgYuEvgWHufWhYgdMjw0,22909
|
|
25
|
-
jinns/nn/__init__.py,sha256=gwE48oqB_FsSIE-hUvCLz0jPaqX350LBxzH6ueFWYk4,456
|
|
26
|
-
jinns/nn/_abstract_pinn.py,sha256=JUFjlV_nyheZw-max_tAUgFh6SspIbD5we_4bn70V6k,671
|
|
27
|
-
jinns/nn/_hyperpinn.py,sha256=hF7HRLMMVBPT9CTQC2DjpDRcQDJCrT9cAj8wfApT_WE,19412
|
|
28
|
-
jinns/nn/_mlp.py,sha256=Xmi-mG6uakN67R2S2UsBazdXIJVaGsD2B6TeJM1QjGY,8881
|
|
29
|
-
jinns/nn/_pinn.py,sha256=4pvgUPQdQaO3cPBuEU7W4UaLV7lodqcR3pVR1sC0ni4,8774
|
|
30
|
-
jinns/nn/_ppinn.py,sha256=LtjGQaLozdA4Kwutn8Pyerbu9yOc0t3_b701yfMb1ac,10392
|
|
31
|
-
jinns/nn/_save_load.py,sha256=UqVy2oBzvIeBy6XB9tb61x3-x8i4dNCXJHC5_-bko-I,7477
|
|
32
|
-
jinns/nn/_spinn.py,sha256=u5YG2FXcrg8p_uS2QFGmWoeFXYLxXnyV2e6BUHpo4xk,4774
|
|
33
|
-
jinns/nn/_spinn_mlp.py,sha256=uCL454sF0Tfj7KT-fdXPnvKJYRQOuq60N0r2b2VAB8Q,7606
|
|
34
|
-
jinns/nn/_utils.py,sha256=9UXz73iHKHVQYPBPIEitrHYJzJ14dspRwPfLA8avx0c,1120
|
|
35
|
-
jinns/parameters/__init__.py,sha256=O0n7y6R1LRmFzzugCxMFCMS2pgsuWSh-XHjfFViN_eg,265
|
|
36
|
-
jinns/parameters/_derivative_keys.py,sha256=YlLDX49PfYhr2Tj--t3praiD8JOUTZU6PTmjbNZsbMc,19173
|
|
37
|
-
jinns/parameters/_params.py,sha256=qn4IGMJhD9lDBqOWmGEMy4gXt5a6KHfirkYZwHO7Vwk,2633
|
|
38
|
-
jinns/plot/__init__.py,sha256=KPHX0Um4FbciZO1yD8kjZbkaT8tT964Y6SE2xCQ4eDU,135
|
|
39
|
-
jinns/plot/_plot.py,sha256=-A5auNeElaz2_8UzVQJQE4143ZFg0zgMjStU7kwttEY,11565
|
|
40
|
-
jinns/solver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
jinns/solver/_rar.py,sha256=vSVTnCGCusI1vTZCvIkP2_G8we44G_42yZHx2sOK9DE,10291
|
|
42
|
-
jinns/solver/_solve.py,sha256=oVHnuc7Z0V2-ZYgZtCx7xdFd7TpB9w-6AwafX-kgBE4,28379
|
|
43
|
-
jinns/solver/_utils.py,sha256=sM2UbVzYyjw24l4QSIR3IlynJTPGD_S08r8v0lXMxA8,5876
|
|
44
|
-
jinns/utils/__init__.py,sha256=OEYWLCw8pKE7xoQREbd6SHvCjuw2QZHuVA6YwDcsBE8,53
|
|
45
|
-
jinns/utils/_containers.py,sha256=YShcrPKfj5_I9mn3NMAS4Ea9MhhyL7fjv0e3MRbITHg,1837
|
|
46
|
-
jinns/utils/_types.py,sha256=jl_91HtcrtE6UHbdTrRI8iUmr2kBUL0oP0UNIKhAXYw,1170
|
|
47
|
-
jinns/utils/_utils.py,sha256=M7NXX9ok-BkH5o_xo74PB1_Cc8XiDipSl51rq82dTH4,2821
|
|
48
|
-
jinns/validation/__init__.py,sha256=FTyUO-v1b8Tv-FDSQsntrH7zl9E0ENexqKMT_dFRkYo,124
|
|
49
|
-
jinns/validation/_validation.py,sha256=8p6sMKiBAvA6JNm65hjkMj0997LJ0BkyCREEh0AnPVE,4803
|
|
50
|
-
jinns-1.5.0.dist-info/licenses/AUTHORS,sha256=7NwCj9nU-HNG1asvy4qhQ2w7oZHrn-Lk5_wK_Ve7a3M,80
|
|
51
|
-
jinns-1.5.0.dist-info/licenses/LICENSE,sha256=BIAkGtXB59Q_BG8f6_OqtQ1BHPv60ggE9mpXJYz2dRM,11337
|
|
52
|
-
jinns-1.5.0.dist-info/METADATA,sha256=jEp__DP39B1HiTYVhtVcWKPmzS22kSUD6jNVSmHFh8g,5314
|
|
53
|
-
jinns-1.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
54
|
-
jinns-1.5.0.dist-info/top_level.txt,sha256=RXbkr2hzy8WBE8aiRyrJYFqn3JeMJIhMdybLjjLTB9c,6
|
|
55
|
-
jinns-1.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|