diff --git a/pina/__init__.py b/pina/__init__.py index 06af48f..06b9482 100644 --- a/pina/__init__.py +++ b/pina/__init__.py @@ -10,6 +10,7 @@ __all__ = [ from .label_tensor import LabelTensor from .graph import Graph -from .solvers.solver import SolverInterface, MultiSolverInterface +from .solver import SolverInterface, MultiSolverInterface from .trainer import Trainer from .condition.condition import Condition +from .data import PinaDataModule \ No newline at end of file diff --git a/pina/adaptive_functions/__init__.py b/pina/adaptive_function/__init__.py similarity index 100% rename from pina/adaptive_functions/__init__.py rename to pina/adaptive_function/__init__.py diff --git a/pina/adaptive_functions/adaptive_func.py b/pina/adaptive_function/adaptive_func.py similarity index 100% rename from pina/adaptive_functions/adaptive_func.py rename to pina/adaptive_function/adaptive_func.py diff --git a/pina/adaptive_functions/adaptive_func_interface.py b/pina/adaptive_function/adaptive_func_interface.py similarity index 98% rename from pina/adaptive_functions/adaptive_func_interface.py rename to pina/adaptive_function/adaptive_func_interface.py index a12b78b..7058faf 100644 --- a/pina/adaptive_functions/adaptive_func_interface.py +++ b/pina/adaptive_function/adaptive_func_interface.py @@ -9,7 +9,7 @@ from abc import ABCMeta class AdaptiveActivationFunctionInterface(torch.nn.Module, metaclass=ABCMeta): r""" The - :class:`~pina.adaptive_functions.adaptive_func_interface.AdaptiveActivationFunctionInterface` + :class:`~pina.adaptive_function.adaptive_func_interface.AdaptiveActivationFunctionInterface` class makes a :class:`torch.nn.Module` activation function into an adaptive trainable activation function. If one wants to create an adpative activation function, this class must be use as base class. diff --git a/pina/callback/__init__.py b/pina/callback/__init__.py new file mode 100644 index 0000000..f4bbffe --- /dev/null +++ b/pina/callback/__init__.py @@ -0,0 +1,10 @@ +__all__ = [ + "SwitchOptimizer", + "R3Refinement", + "MetricTracker", + "PINAProgressBar", +] + +from .optimizer_callback import SwitchOptimizer +from .adaptive_refinment_callback import R3Refinement +from .processing_callback import MetricTracker, PINAProgressBar diff --git a/pina/callbacks/adaptive_refinment_callbacks.py b/pina/callback/adaptive_refinment_callback.py similarity index 100% rename from pina/callbacks/adaptive_refinment_callbacks.py rename to pina/callback/adaptive_refinment_callback.py diff --git a/pina/callbacks/optimizer_callbacks.py b/pina/callback/optimizer_callback.py similarity index 98% rename from pina/callbacks/optimizer_callbacks.py rename to pina/callback/optimizer_callback.py index c4836dc..c76bbfc 100644 --- a/pina/callbacks/optimizer_callbacks.py +++ b/pina/callback/optimizer_callback.py @@ -19,7 +19,7 @@ class SwitchOptimizer(Callback): :param new_optimizers: The model optimizers to switch to. Can be a single :class:`torch.optim.Optimizer` or a list of them for multiple - model solvers. + model solver. :type new_optimizers: pina.optim.TorchOptimizer | list :param epoch_switch: The epoch at which to switch to the new optimizer. :type epoch_switch: int diff --git a/pina/callbacks/processing_callbacks.py b/pina/callback/processing_callback.py similarity index 97% rename from pina/callbacks/processing_callbacks.py rename to pina/callback/processing_callback.py index b35b701..329421a 100644 --- a/pina/callbacks/processing_callbacks.py +++ b/pina/callback/processing_callback.py @@ -87,12 +87,12 @@ class PINAProgressBar(TQDMProgressBar): :Keyword Arguments: The additional keyword arguments specify the progress bar and can be choosen from the `pytorch-lightning - TQDMProgressBar API `_ + TQDMProgressBar API `_ Example: >>> pbar = PINAProgressBar(['mean']) >>> # ... Perform training ... - >>> trainer = Trainer(solver, callbacks=[pbar]) + >>> trainer = Trainer(solver, callback=[pbar]) """ super().__init__(**kwargs) # check consistency diff --git a/pina/callbacks/__init__.py b/pina/callbacks/__init__.py deleted file mode 100644 index e1eaf82..0000000 --- a/pina/callbacks/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -__all__ = [ - "SwitchOptimizer", - "R3Refinement", - "MetricTracker", - "PINAProgressBar", -] - -from .optimizer_callbacks import SwitchOptimizer -from .adaptive_refinment_callbacks import R3Refinement -from .processing_callbacks import MetricTracker, PINAProgressBar diff --git a/pina/condition/input_equation_condition.py b/pina/condition/input_equation_condition.py index a597111..7416cff 100644 --- a/pina/condition/input_equation_condition.py +++ b/pina/condition/input_equation_condition.py @@ -27,7 +27,7 @@ class InputPointsEquationCondition(ConditionInterface): if key == 'input_points': check_consistency( value, (LabelTensor) - ) # for now only labeltensors, we need labels for the operators! + ) # for now only labeltensors, we need labels for the operator! InputPointsEquationCondition.__dict__[key].__set__(self, value) elif key == 'equation': check_consistency(value, (EquationInterface)) diff --git a/pina/equation/equation_factory.py b/pina/equation/equation_factory.py index 5921b1f..cdc4c3f 100644 --- a/pina/equation/equation_factory.py +++ b/pina/equation/equation_factory.py @@ -1,7 +1,7 @@ """ Module """ from .equation import Equation -from ..operators import grad, div, laplacian +from ..operator import grad, div, laplacian class FixedValue(Equation): diff --git a/pina/model/avno.py b/pina/model/avno.py index e27ce1f..c3d63b5 100644 --- a/pina/model/avno.py +++ b/pina/model/avno.py @@ -2,9 +2,9 @@ import torch from torch import nn, cat -from .layers import AVNOBlock +from .block import AVNOBlock from .base_no import KernelNeuralOperator -from pina.utils import check_consistency +from ..utils import check_consistency class AveragingNeuralOperator(KernelNeuralOperator): diff --git a/pina/model/base_no.py b/pina/model/base_no.py index d22a18c..62e3aa0 100644 --- a/pina/model/base_no.py +++ b/pina/model/base_no.py @@ -3,14 +3,14 @@ Kernel Neural Operator Module. """ import torch -from pina.utils import check_consistency +from ..utils import check_consistency class KernelNeuralOperator(torch.nn.Module): r""" Base class for composing Neural Operators with integral kernels. - This is a base class for composing neural operators with multiple + This is a base class for composing neural operator with multiple integral kernels. All neural operator models defined in PINA inherit from this class. The structure is inspired by the work of Kovachki, N. et al. see Figure 2 of the reference for extra details. The Neural diff --git a/pina/model/block/__init__.py b/pina/model/block/__init__.py new file mode 100644 index 0000000..3e3e716 --- /dev/null +++ b/pina/model/block/__init__.py @@ -0,0 +1,35 @@ +__all__ = [ + "ContinuousConvBlock", + "ResidualBlock", + "EnhancedLinear", + "SpectralConvBlock1D", + "SpectralConvBlock2D", + "SpectralConvBlock3D", + "FourierBlock1D", + "FourierBlock2D", + "FourierBlock3D", + "PODBlock", + "OrthogonalBlock", + "PeriodicBoundaryEmbedding", + "FourierFeatureEmbedding", + "AVNOBlock", + "LowRankBlock", + "RBFBlock", + "GNOBlock" +] + +from .convolution_2d import ContinuousConvBlock +from .residual import ResidualBlock, EnhancedLinear +from .spectral import ( + SpectralConvBlock1D, + SpectralConvBlock2D, + SpectralConvBlock3D, +) +from .fourier import FourierBlock1D, FourierBlock2D, FourierBlock3D +from .pod import PODBlock +from .orthogonal import OrthogonalBlock +from .embedding import PeriodicBoundaryEmbedding, FourierFeatureEmbedding +from .avno_layer import AVNOBlock +from .lowrank_layer import LowRankBlock +from .rbf_layer import RBFBlock +from .gno_block import GNOBlock diff --git a/pina/model/layers/avno_layer.py b/pina/model/block/avno_layer.py similarity index 100% rename from pina/model/layers/avno_layer.py rename to pina/model/block/avno_layer.py diff --git a/pina/model/layers/convolution.py b/pina/model/block/convolution.py similarity index 100% rename from pina/model/layers/convolution.py rename to pina/model/block/convolution.py diff --git a/pina/model/layers/convolution_2d.py b/pina/model/block/convolution_2d.py similarity index 100% rename from pina/model/layers/convolution_2d.py rename to pina/model/block/convolution_2d.py diff --git a/pina/model/layers/embedding.py b/pina/model/block/embedding.py similarity index 100% rename from pina/model/layers/embedding.py rename to pina/model/block/embedding.py diff --git a/pina/model/layers/fourier.py b/pina/model/block/fourier.py similarity index 99% rename from pina/model/layers/fourier.py rename to pina/model/block/fourier.py index 3b6078e..defe5ae 100644 --- a/pina/model/layers/fourier.py +++ b/pina/model/block/fourier.py @@ -2,7 +2,7 @@ import torch import torch.nn as nn from ...utils import check_consistency -from pina.model.layers import ( +from pina.model.block import ( SpectralConvBlock1D, SpectralConvBlock2D, SpectralConvBlock3D, diff --git a/pina/model/layers/gno_block.py b/pina/model/block/gno_block.py similarity index 100% rename from pina/model/layers/gno_block.py rename to pina/model/block/gno_block.py diff --git a/pina/model/layers/integral.py b/pina/model/block/integral.py similarity index 100% rename from pina/model/layers/integral.py rename to pina/model/block/integral.py diff --git a/pina/model/layers/lowrank_layer.py b/pina/model/block/lowrank_layer.py similarity index 100% rename from pina/model/layers/lowrank_layer.py rename to pina/model/block/lowrank_layer.py diff --git a/pina/model/layers/messa_passing.py b/pina/model/block/messa_passing.py similarity index 100% rename from pina/model/layers/messa_passing.py rename to pina/model/block/messa_passing.py diff --git a/pina/model/layers/orthogonal.py b/pina/model/block/orthogonal.py similarity index 100% rename from pina/model/layers/orthogonal.py rename to pina/model/block/orthogonal.py diff --git a/pina/model/layers/pod.py b/pina/model/block/pod.py similarity index 100% rename from pina/model/layers/pod.py rename to pina/model/block/pod.py diff --git a/pina/model/layers/rbf_layer.py b/pina/model/block/rbf_layer.py similarity index 100% rename from pina/model/layers/rbf_layer.py rename to pina/model/block/rbf_layer.py diff --git a/pina/model/layers/residual.py b/pina/model/block/residual.py similarity index 100% rename from pina/model/layers/residual.py rename to pina/model/block/residual.py diff --git a/pina/model/layers/spectral.py b/pina/model/block/spectral.py similarity index 100% rename from pina/model/layers/spectral.py rename to pina/model/block/spectral.py diff --git a/pina/model/layers/stride.py b/pina/model/block/stride.py similarity index 100% rename from pina/model/layers/stride.py rename to pina/model/block/stride.py diff --git a/pina/model/layers/utils_convolution.py b/pina/model/block/utils_convolution.py similarity index 100% rename from pina/model/layers/utils_convolution.py rename to pina/model/block/utils_convolution.py diff --git a/pina/model/deeponet.py b/pina/model/deeponet.py index eb5d618..f165514 100644 --- a/pina/model/deeponet.py +++ b/pina/model/deeponet.py @@ -18,7 +18,7 @@ class MIONet(torch.nn.Module): .. seealso:: **Original reference**: Jin, Pengzhan, Shuai Meng, and Lu Lu. - *MIONet: Learning multiple-input operators via tensor product.* + *MIONet: Learning multiple-input operator via tensor product.* SIAM Journal on Scientific Computing 44.6 (2022): A3490-A351 DOI: `10.1137/22M1477751 `_ @@ -289,8 +289,8 @@ class DeepONet(MIONet): .. seealso:: **Original reference**: Lu, L., Jin, P., Pang, G. et al. *Learning - nonlinear operators via DeepONet based on the universal approximation - theorem of operators*. Nat Mach Intell 3, 218–229 (2021). + nonlinear operator via DeepONet based on the universal approximation + theorem of operator*. Nat Mach Intell 3, 218–229 (2021). DOI: `10.1038/s42256-021-00302-5 `_ diff --git a/pina/model/feed_forward.py b/pina/model/feed_forward.py index 5dfd791..5e2566c 100644 --- a/pina/model/feed_forward.py +++ b/pina/model/feed_forward.py @@ -3,7 +3,7 @@ import torch import torch.nn as nn from ..utils import check_consistency -from .layers.residual import EnhancedLinear +from .block.residual import EnhancedLinear class FeedForward(torch.nn.Module): diff --git a/pina/model/fno.py b/pina/model/fno.py index bcf018f..0f68fb6 100644 --- a/pina/model/fno.py +++ b/pina/model/fno.py @@ -7,7 +7,7 @@ import torch.nn as nn from ..label_tensor import LabelTensor import warnings from ..utils import check_consistency -from .layers.fourier import FourierBlock1D, FourierBlock2D, FourierBlock3D +from .block.fourier import FourierBlock1D, FourierBlock2D, FourierBlock3D from .base_no import KernelNeuralOperator diff --git a/pina/model/gno.py b/pina/model/gno.py index 9a8b888..300d7f9 100644 --- a/pina/model/gno.py +++ b/pina/model/gno.py @@ -1,6 +1,6 @@ import torch from torch.nn import Tanh -from .layers import GNOBlock +from .block import GNOBlock from .base_no import KernelNeuralOperator diff --git a/pina/model/layers/__init__.py b/pina/model/layers/__init__.py index 3e3e716..e69de29 100644 --- a/pina/model/layers/__init__.py +++ b/pina/model/layers/__init__.py @@ -1,35 +0,0 @@ -__all__ = [ - "ContinuousConvBlock", - "ResidualBlock", - "EnhancedLinear", - "SpectralConvBlock1D", - "SpectralConvBlock2D", - "SpectralConvBlock3D", - "FourierBlock1D", - "FourierBlock2D", - "FourierBlock3D", - "PODBlock", - "OrthogonalBlock", - "PeriodicBoundaryEmbedding", - "FourierFeatureEmbedding", - "AVNOBlock", - "LowRankBlock", - "RBFBlock", - "GNOBlock" -] - -from .convolution_2d import ContinuousConvBlock -from .residual import ResidualBlock, EnhancedLinear -from .spectral import ( - SpectralConvBlock1D, - SpectralConvBlock2D, - SpectralConvBlock3D, -) -from .fourier import FourierBlock1D, FourierBlock2D, FourierBlock3D -from .pod import PODBlock -from .orthogonal import OrthogonalBlock -from .embedding import PeriodicBoundaryEmbedding, FourierFeatureEmbedding -from .avno_layer import AVNOBlock -from .lowrank_layer import LowRankBlock -from .rbf_layer import RBFBlock -from .gno_block import GNOBlock diff --git a/pina/model/lno.py b/pina/model/lno.py index b09f1ae..9f24436 100644 --- a/pina/model/lno.py +++ b/pina/model/lno.py @@ -3,10 +3,10 @@ import torch from torch import nn, cat -from pina.utils import check_consistency +from ..utils import check_consistency from .base_no import KernelNeuralOperator -from .layers.lowrank_layer import LowRankBlock +from .block.lowrank_layer import LowRankBlock class LowRankNeuralOperator(KernelNeuralOperator): @@ -19,7 +19,7 @@ class LowRankNeuralOperator(KernelNeuralOperator): to other functions. It can be trained with Supervised or PINN based learning strategies. LowRankNeuralOperator does convolution by performing a low rank - approximation, see :class:`~pina.model.layers.lowrank_layer.LowRankBlock`. + approximation, see :class:`~pina.model.block.lowrank_layer.LowRankBlock`. .. seealso:: diff --git a/pina/model/spline.py b/pina/model/spline.py index 2328986..0aeef8e 100644 --- a/pina/model/spline.py +++ b/pina/model/spline.py @@ -1,7 +1,6 @@ """Module for Spline model""" import torch -import torch.nn as nn from ..utils import check_consistency diff --git a/pina/operators.py b/pina/operator.py similarity index 97% rename from pina/operators.py rename to pina/operator.py index 5ed6e93..a4388f4 100644 --- a/pina/operators.py +++ b/pina/operator.py @@ -1,7 +1,7 @@ """ -Module for operators vectorize implementation. Differential operators are used to write any differential problem. -These operators are implemented to work on different accellerators: CPU, GPU, TPU or MPS. -All operators take as input a tensor onto which computing the operator, a tensor with respect +Module for operator vectorize implementation. Differential operator are used to write any differential problem. +These operator are implemented to work on different accellerators: CPU, GPU, TPU or MPS. +All operator take as input a tensor onto which computing the operator, a tensor with respect to which computing the operator, the name of the output variables to calculate the operator for (in case of multidimensional functions), and the variables name on which the operator is calculated. """ diff --git a/pina/problem/inverse_problem.py b/pina/problem/inverse_problem.py index e54495a..09c5981 100644 --- a/pina/problem/inverse_problem.py +++ b/pina/problem/inverse_problem.py @@ -16,7 +16,7 @@ class InverseProblem(AbstractProblem): :Example: >>> from pina.problem import SpatialProblem, InverseProblem - >>> from pina.operators import grad + >>> from pina.operator import grad >>> from pina.equation import ParametricEquation, FixedValue >>> from pina import Condition >>> from pina.geometry import CartesianDomain diff --git a/pina/problem/parametric_problem.py b/pina/problem/parametric_problem.py index 600eab0..3710175 100644 --- a/pina/problem/parametric_problem.py +++ b/pina/problem/parametric_problem.py @@ -16,7 +16,7 @@ class ParametricProblem(AbstractProblem): :Example: >>> from pina.problem import SpatialProblem, ParametricProblem - >>> from pina.operators import grad + >>> from pina.operator import grad >>> from pina.equations import Equation, FixedValue >>> from pina import Condition >>> from pina.geometry import CartesianDomain diff --git a/pina/problem/spatial_problem.py b/pina/problem/spatial_problem.py index e344142..6196266 100644 --- a/pina/problem/spatial_problem.py +++ b/pina/problem/spatial_problem.py @@ -14,7 +14,7 @@ class SpatialProblem(AbstractProblem): :Example: >>> from pina.problem import SpatialProblem - >>> from pina.operators import grad + >>> from pina.operator import grad >>> from pina.equation import Equation, FixedValue >>> from pina import Condition >>> from pina.geometry import CartesianDomain diff --git a/pina/problem/timedep_problem.py b/pina/problem/timedep_problem.py index cefdb54..3aaa945 100644 --- a/pina/problem/timedep_problem.py +++ b/pina/problem/timedep_problem.py @@ -14,7 +14,7 @@ class TimeDependentProblem(AbstractProblem): :Example: >>> from pina.problem import SpatialProblem, TimeDependentProblem - >>> from pina.operators import grad, laplacian + >>> from pina.operator import grad, laplacian >>> from pina.equation import Equation, FixedValue >>> from pina import Condition >>> from pina.geometry import CartesianDomain diff --git a/pina/problem/zoo/diffusion_reaction.py b/pina/problem/zoo/diffusion_reaction.py index b0c8e22..8bf6284 100644 --- a/pina/problem/zoo/diffusion_reaction.py +++ b/pina/problem/zoo/diffusion_reaction.py @@ -5,7 +5,7 @@ from pina import Condition from pina.problem import SpatialProblem, TimeDependentProblem from pina.equation.equation import Equation from pina.domain import CartesianDomain -from pina.operators import grad +from pina.operator import grad def diffusion_reaction(input_, output_): """ diff --git a/pina/problem/zoo/inverse_diffusion_reaction.py b/pina/problem/zoo/inverse_diffusion_reaction.py index 4f4d65d..0758ce2 100644 --- a/pina/problem/zoo/inverse_diffusion_reaction.py +++ b/pina/problem/zoo/inverse_diffusion_reaction.py @@ -5,7 +5,7 @@ from pina import Condition, LabelTensor from pina.problem import SpatialProblem, TimeDependentProblem, InverseProblem from pina.equation.equation import Equation from pina.domain import CartesianDomain -from pina.operators import grad +from pina.operator import grad def diffusion_reaction(input_, output_): """ diff --git a/pina/problem/zoo/inverse_poisson_2d_square.py b/pina/problem/zoo/inverse_poisson_2d_square.py index 6f7140f..4e147ac 100644 --- a/pina/problem/zoo/inverse_poisson_2d_square.py +++ b/pina/problem/zoo/inverse_poisson_2d_square.py @@ -3,7 +3,7 @@ import torch from pina import Condition, LabelTensor from pina.problem import SpatialProblem, InverseProblem -from pina.operators import laplacian +from pina.operator import laplacian from pina.domain import CartesianDomain from pina.equation.equation import Equation from pina.equation.equation_factory import FixedValue diff --git a/pina/problem/zoo/poisson_2d_square.py b/pina/problem/zoo/poisson_2d_square.py index 68d84ad..1e161ba 100644 --- a/pina/problem/zoo/poisson_2d_square.py +++ b/pina/problem/zoo/poisson_2d_square.py @@ -1,7 +1,7 @@ """ Definition of the Poisson problem on a square domain.""" from pina.problem import SpatialProblem -from pina.operators import laplacian +from pina.operator import laplacian from pina import Condition from pina.domain import CartesianDomain from pina.equation.equation import Equation diff --git a/pina/solvers/__init__.py b/pina/solver/__init__.py similarity index 92% rename from pina/solvers/__init__.py rename to pina/solver/__init__.py index 4263a8a..8467ae4 100644 --- a/pina/solvers/__init__.py +++ b/pina/solver/__init__.py @@ -15,7 +15,7 @@ __all__ = [ ] from .solver import SolverInterface, SingleSolverInterface, MultiSolverInterface -from .pinns import * +from .physic_informed_solver import * from .supervised import SupervisedSolver from .rom import ReducedOrderModelSolver from .garom import GAROM diff --git a/pina/solvers/garom.py b/pina/solver/garom.py similarity index 100% rename from pina/solvers/garom.py rename to pina/solver/garom.py diff --git a/pina/solvers/pinns/__init__.py b/pina/solver/physic_informed_solver/__init__.py similarity index 100% rename from pina/solvers/pinns/__init__.py rename to pina/solver/physic_informed_solver/__init__.py diff --git a/pina/solvers/pinns/causal_pinn.py b/pina/solver/physic_informed_solver/causal_pinn.py similarity index 98% rename from pina/solvers/pinns/causal_pinn.py rename to pina/solver/physic_informed_solver/causal_pinn.py index c00ff0f..eab03db 100644 --- a/pina/solvers/pinns/causal_pinn.py +++ b/pina/solver/physic_informed_solver/causal_pinn.py @@ -11,7 +11,7 @@ class CausalPINN(PINN): r""" Causal Physics Informed Neural Network (CausalPINN) solver class. This class implements Causal Physics Informed Neural - Network solvers, using a user specified ``model`` to solve a specific + Network solver, using a user specified ``model`` to solve a specific ``problem``. It can be used for solving both forward and inverse problems. The Causal Physics Informed Network aims to find diff --git a/pina/solvers/pinns/competitive_pinn.py b/pina/solver/physic_informed_solver/competitive_pinn.py similarity index 99% rename from pina/solvers/pinns/competitive_pinn.py rename to pina/solver/physic_informed_solver/competitive_pinn.py index 40ca888..2485ea8 100644 --- a/pina/solvers/pinns/competitive_pinn.py +++ b/pina/solver/physic_informed_solver/competitive_pinn.py @@ -12,7 +12,7 @@ class CompetitivePINN(PINNInterface, MultiSolverInterface): r""" Competitive Physics Informed Neural Network (PINN) solver class. This class implements Competitive Physics Informed Neural - Network solvers, using a user specified ``model`` to solve a specific + Network solver, using a user specified ``model`` to solve a specific ``problem``. It can be used for solving both forward and inverse problems. The Competitive Physics Informed Network aims to find diff --git a/pina/solvers/pinns/gradient_pinn.py b/pina/solver/physic_informed_solver/gradient_pinn.py similarity index 97% rename from pina/solvers/pinns/gradient_pinn.py rename to pina/solver/physic_informed_solver/gradient_pinn.py index f0aba47..de439b5 100644 --- a/pina/solvers/pinns/gradient_pinn.py +++ b/pina/solver/physic_informed_solver/gradient_pinn.py @@ -3,7 +3,7 @@ import torch from .pinn import PINN -from pina.operators import grad +from pina.operator import grad from pina.problem import SpatialProblem @@ -11,7 +11,7 @@ class GradientPINN(PINN): r""" Gradient Physics Informed Neural Network (GradientPINN) solver class. This class implements Gradient Physics Informed Neural - Network solvers, using a user specified ``model`` to solve a specific + Network solver, using a user specified ``model`` to solve a specific ``problem``. It can be used for solving both forward and inverse problems. The Gradient Physics Informed Network aims to find diff --git a/pina/solvers/pinns/pinn.py b/pina/solver/physic_informed_solver/pinn.py similarity index 98% rename from pina/solvers/pinns/pinn.py rename to pina/solver/physic_informed_solver/pinn.py index 84c9392..83a4a1e 100644 --- a/pina/solvers/pinns/pinn.py +++ b/pina/solver/physic_informed_solver/pinn.py @@ -11,7 +11,7 @@ class PINN(PINNInterface, SingleSolverInterface): r""" Physics Informed Neural Network (PINN) solver class. This class implements Physics Informed Neural - Network solvers, using a user specified ``model`` to solve a specific + Network solver, using a user specified ``model`` to solve a specific ``problem``. It can be used for solving both forward and inverse problems. The Physics Informed Network aims to find diff --git a/pina/solvers/pinns/pinn_interface.py b/pina/solver/physic_informed_solver/pinn_interface.py similarity index 99% rename from pina/solvers/pinns/pinn_interface.py rename to pina/solver/physic_informed_solver/pinn_interface.py index 62ee75a..c79e1ba 100644 --- a/pina/solvers/pinns/pinn_interface.py +++ b/pina/solver/physic_informed_solver/pinn_interface.py @@ -18,7 +18,7 @@ from ...condition import ( class PINNInterface(SolverInterface, metaclass=ABCMeta): """ Base PINN solver class. This class implements the Solver Interface - for Physics Informed Neural Network solvers. + for Physics Informed Neural Network solver. This class can be used to define PINNs with multiple ``optimizers``, and/or ``models``. diff --git a/pina/solvers/pinns/rba_pinn.py b/pina/solver/physic_informed_solver/rba_pinn.py similarity index 98% rename from pina/solvers/pinns/rba_pinn.py rename to pina/solver/physic_informed_solver/rba_pinn.py index 9fa2a82..38e5061 100644 --- a/pina/solvers/pinns/rba_pinn.py +++ b/pina/solver/physic_informed_solver/rba_pinn.py @@ -11,7 +11,7 @@ class RBAPINN(PINN): r""" Residual-based Attention PINN (RBAPINN) solver class. This class implements Residual-based Attention Physics Informed Neural - Network solvers, using a user specified ``model`` to solve a specific + Network solver, using a user specified ``model`` to solve a specific ``problem``. It can be used for solving both forward and inverse problems. The Residual-based Attention Physics Informed Neural Network aims to find diff --git a/pina/solvers/pinns/self_adaptive_pinn.py b/pina/solver/physic_informed_solver/self_adaptive_pinn.py similarity index 99% rename from pina/solvers/pinns/self_adaptive_pinn.py rename to pina/solver/physic_informed_solver/self_adaptive_pinn.py index 66ae74c..9314ae9 100644 --- a/pina/solvers/pinns/self_adaptive_pinn.py +++ b/pina/solver/physic_informed_solver/self_adaptive_pinn.py @@ -39,7 +39,7 @@ class SelfAdaptivePINN(PINNInterface, MultiSolverInterface): r""" Self Adaptive Physics Informed Neural Network (SelfAdaptivePINN) solver class. This class implements Self-Adaptive Physics Informed Neural - Network solvers, using a user specified ``model`` to solve a specific + Network solver, using a user specified ``model`` to solve a specific ``problem``. It can be used for solving both forward and inverse problems. The Self Adapive Physics Informed Neural Network aims to find diff --git a/pina/solvers/rom.py b/pina/solver/rom.py similarity index 99% rename from pina/solvers/rom.py rename to pina/solver/rom.py index 89de19c..c7847be 100644 --- a/pina/solvers/rom.py +++ b/pina/solver/rom.py @@ -2,7 +2,7 @@ import torch -from pina.solvers import SupervisedSolver +from pina.solver import SupervisedSolver class ReducedOrderModelSolver(SupervisedSolver): diff --git a/pina/solvers/solver.py b/pina/solver/solver.py similarity index 100% rename from pina/solvers/solver.py rename to pina/solver/solver.py diff --git a/pina/solvers/supervised.py b/pina/solver/supervised.py similarity index 98% rename from pina/solvers/supervised.py rename to pina/solver/supervised.py index 86f2c41..b453b65 100644 --- a/pina/solvers/supervised.py +++ b/pina/solver/supervised.py @@ -15,7 +15,7 @@ class SupervisedSolver(SingleSolverInterface): The Supervised Solver class aims to find a map between the input :math:`\mathbf{s}:\Omega\rightarrow\mathbb{R}^m` and the output :math:`\mathbf{u}:\Omega\rightarrow\mathbb{R}^m`. The input - can be discretised in space (as in :obj:`~pina.solvers.rom.ROMe2eSolver`), + can be discretised in space (as in :obj:`~pina.solver.rom.ROMe2eSolver`), or not (e.g. when training Neural Operators). Given a model :math:`\mathcal{M}`, the following loss function is diff --git a/pina/trainer.py b/pina/trainer.py index eb8639e..3fe0132 100644 --- a/pina/trainer.py +++ b/pina/trainer.py @@ -4,7 +4,7 @@ import torch import lightning from .utils import check_consistency from .data import PinaDataModule -from .solvers import SolverInterface, PINNInterface +from .solver import SolverInterface, PINNInterface class Trainer(lightning.pytorch.Trainer): diff --git a/pina/utils.py b/pina/utils.py index e633cce..e56abcf 100644 --- a/pina/utils.py +++ b/pina/utils.py @@ -7,6 +7,10 @@ from functools import reduce from .label_tensor import LabelTensor +def custom_warning_format( + message, category, filename, lineno, file=None, line=None + ): + return f"{filename}: {category.__name__}: {message}\n" def check_consistency(object, object_instance, subclass=False): """Helper function to check object inheritance consistency. diff --git a/tests/test_adaptive_functions.py b/tests/test_adaptive_function.py similarity index 83% rename from tests/test_adaptive_functions.py rename to tests/test_adaptive_function.py index 43d9c1b..ba18d2e 100644 --- a/tests/test_adaptive_functions.py +++ b/tests/test_adaptive_function.py @@ -1,19 +1,19 @@ import torch import pytest -from pina.adaptive_functions import (AdaptiveReLU, AdaptiveSigmoid, AdaptiveTanh, +from pina.adaptive_function import (AdaptiveReLU, AdaptiveSigmoid, AdaptiveTanh, AdaptiveSiLU, AdaptiveMish, AdaptiveELU, AdaptiveCELU, AdaptiveGELU, AdaptiveSoftmin, AdaptiveSoftmax, AdaptiveSIREN, AdaptiveExp) -adaptive_functions = (AdaptiveReLU, AdaptiveSigmoid, AdaptiveTanh, +adaptive_function = (AdaptiveReLU, AdaptiveSigmoid, AdaptiveTanh, AdaptiveSiLU, AdaptiveMish, AdaptiveELU, AdaptiveCELU, AdaptiveGELU, AdaptiveSoftmin, AdaptiveSoftmax, AdaptiveSIREN, AdaptiveExp) x = torch.rand(10, requires_grad=True) -@pytest.mark.parametrize("Func", adaptive_functions) +@pytest.mark.parametrize("Func", adaptive_function) def test_constructor(Func): if Func.__name__ == 'AdaptiveExp': # simple @@ -50,12 +50,12 @@ def test_constructor(Func): Func(alpha='s') Func(alpha=1) -@pytest.mark.parametrize("Func", adaptive_functions) +@pytest.mark.parametrize("Func", adaptive_function) def test_forward(Func): af = Func() af(x) -@pytest.mark.parametrize("Func", adaptive_functions) +@pytest.mark.parametrize("Func", adaptive_function) def test_backward(Func): af = Func() y = af(x) diff --git a/tests/test_layers/test_conv.py b/tests/test_blocks/test_conv.py similarity index 98% rename from tests/test_layers/test_conv.py rename to tests/test_blocks/test_conv.py index 8f322ac..fd8a70a 100644 --- a/tests/test_layers/test_conv.py +++ b/tests/test_blocks/test_conv.py @@ -1,4 +1,4 @@ -from pina.model.layers import ContinuousConvBlock +from pina.model.block import ContinuousConvBlock import torch diff --git a/tests/test_layers/test_embedding.py b/tests/test_blocks/test_embedding.py similarity index 97% rename from tests/test_layers/test_embedding.py rename to tests/test_blocks/test_embedding.py index 29052d0..db10695 100644 --- a/tests/test_layers/test_embedding.py +++ b/tests/test_blocks/test_embedding.py @@ -1,7 +1,7 @@ import torch import pytest -from pina.model.layers import PeriodicBoundaryEmbedding, FourierFeatureEmbedding +from pina.model.block import PeriodicBoundaryEmbedding, FourierFeatureEmbedding # test tolerance tol = 1e-6 diff --git a/tests/test_layers/test_fourier.py b/tests/test_blocks/test_fourier.py similarity index 97% rename from tests/test_layers/test_fourier.py rename to tests/test_blocks/test_fourier.py index f9c874b..2ac41cd 100644 --- a/tests/test_layers/test_fourier.py +++ b/tests/test_blocks/test_fourier.py @@ -1,4 +1,4 @@ -from pina.model.layers import FourierBlock1D, FourierBlock2D, FourierBlock3D +from pina.model.block import FourierBlock1D, FourierBlock2D, FourierBlock3D import torch input_numb_fields = 3 diff --git a/tests/test_layers/test_lnolayer.py b/tests/test_blocks/test_lnolayer.py similarity index 97% rename from tests/test_layers/test_lnolayer.py rename to tests/test_blocks/test_lnolayer.py index 28db849..70ceed0 100644 --- a/tests/test_layers/test_lnolayer.py +++ b/tests/test_blocks/test_lnolayer.py @@ -1,7 +1,7 @@ import torch import pytest -from pina.model.layers import LowRankBlock +from pina.model.block import LowRankBlock from pina import LabelTensor diff --git a/tests/test_layers/test_orthogonal.py b/tests/test_blocks/test_orthogonal.py similarity index 97% rename from tests/test_layers/test_orthogonal.py rename to tests/test_blocks/test_orthogonal.py index d443c17..ee107fe 100644 --- a/tests/test_layers/test_orthogonal.py +++ b/tests/test_blocks/test_orthogonal.py @@ -1,6 +1,6 @@ import torch import pytest -from pina.model.layers import OrthogonalBlock +from pina.model.block import OrthogonalBlock torch.manual_seed(111) diff --git a/tests/test_layers/test_pod.py b/tests/test_blocks/test_pod.py similarity index 98% rename from tests/test_layers/test_pod.py rename to tests/test_blocks/test_pod.py index 433fcaf..c3d2325 100644 --- a/tests/test_layers/test_pod.py +++ b/tests/test_blocks/test_pod.py @@ -1,7 +1,7 @@ import torch import pytest -from pina.model.layers.pod import PODBlock +from pina.model.block.pod import PODBlock x = torch.linspace(-1, 1, 100) toy_snapshots = torch.vstack([torch.exp(-x**2)*c for c in torch.linspace(0, 1, 10)]) diff --git a/tests/test_layers/test_rbf.py b/tests/test_blocks/test_rbf.py similarity index 98% rename from tests/test_layers/test_rbf.py rename to tests/test_blocks/test_rbf.py index 43f19f3..ca0eb9c 100644 --- a/tests/test_layers/test_rbf.py +++ b/tests/test_blocks/test_rbf.py @@ -2,7 +2,7 @@ import torch import pytest import math -from pina.model.layers.rbf_layer import RBFBlock +from pina.model.block.rbf_layer import RBFBlock x = torch.linspace(-1, 1, 100) toy_params = torch.linspace(0, 1, 10).unsqueeze(1) diff --git a/tests/test_layers/test_residual.py b/tests/test_blocks/test_residual.py similarity index 98% rename from tests/test_layers/test_residual.py rename to tests/test_blocks/test_residual.py index 03425a5..dea6eb0 100644 --- a/tests/test_layers/test_residual.py +++ b/tests/test_blocks/test_residual.py @@ -1,4 +1,4 @@ -from pina.model.layers import ResidualBlock, EnhancedLinear +from pina.model.block import ResidualBlock, EnhancedLinear import torch import torch.nn as nn diff --git a/tests/test_layers/test_spectral_conv.py b/tests/test_blocks/test_spectral_conv.py similarity index 96% rename from tests/test_layers/test_spectral_conv.py rename to tests/test_blocks/test_spectral_conv.py index 3ff1ee3..26447c4 100644 --- a/tests/test_layers/test_spectral_conv.py +++ b/tests/test_blocks/test_spectral_conv.py @@ -1,4 +1,4 @@ -from pina.model.layers import SpectralConvBlock1D, SpectralConvBlock2D, SpectralConvBlock3D +from pina.model.block import SpectralConvBlock1D, SpectralConvBlock2D, SpectralConvBlock3D import torch input_numb_fields = 3 diff --git a/tests/test_callbacks/test_adaptive_refinment_callbacks.py b/tests/test_callback/test_adaptive_refinment_callback.py similarity index 87% rename from tests/test_callbacks/test_adaptive_refinment_callbacks.py rename to tests/test_callback/test_adaptive_refinment_callback.py index 12f4c1e..dacd077 100644 --- a/tests/test_callbacks/test_adaptive_refinment_callbacks.py +++ b/tests/test_callback/test_adaptive_refinment_callback.py @@ -1,8 +1,8 @@ -from pina.solvers import PINN +from pina.solver import PINN from pina.trainer import Trainer from pina.model import FeedForward from pina.problem.zoo import Poisson2DSquareProblem as Poisson -from pina.callbacks import R3Refinement +from pina.callback import R3Refinement # make the problem @@ -25,7 +25,7 @@ solver = PINN(problem=poisson_problem, model=model) # def test_r3refinment_routine(): # # make the trainer # trainer = Trainer(solver=solver, -# callbacks=[R3Refinement(sample_every=1)], +# callback=[R3Refinement(sample_every=1)], # accelerator='cpu', # max_epochs=5) # trainer.train() @@ -35,7 +35,7 @@ solver = PINN(problem=poisson_problem, model=model) # len(poisson_problem.output_variables)) # solver = PINN(problem=poisson_problem, model=model) # trainer = Trainer(solver=solver, -# callbacks=[R3Refinement(sample_every=1)], +# callback=[R3Refinement(sample_every=1)], # accelerator='cpu', # max_epochs=5) # before_n_points = {loc : len(pts) for loc, pts in trainer.solver.problem.input_pts.items()} diff --git a/tests/test_callbacks/test_metric_tracker.py b/tests/test_callback/test_metric_tracker.py similarity index 87% rename from tests/test_callbacks/test_metric_tracker.py rename to tests/test_callback/test_metric_tracker.py index c507aaa..16c6853 100644 --- a/tests/test_callbacks/test_metric_tracker.py +++ b/tests/test_callback/test_metric_tracker.py @@ -1,7 +1,7 @@ -from pina.solvers import PINN +from pina.solver import PINN from pina.trainer import Trainer from pina.model import FeedForward -from pina.callbacks import MetricTracker +from pina.callback import MetricTracker from pina.problem.zoo import Poisson2DSquareProblem as Poisson @@ -24,14 +24,14 @@ def test_metric_tracker_constructor(): # def test_metric_tracker_routine(): #TODO revert # # make the trainer # trainer = Trainer(solver=solver, -# callbacks=[ +# callback=[ # MetricTracker() # ], # accelerator='cpu', # max_epochs=5) # trainer.train() # # get the tracked metrics -# metrics = trainer.callbacks[0].metrics +# metrics = trainer.callback[0].metrics # # assert the logged metrics are correct # logged_metrics = sorted(list(metrics.keys())) # assert logged_metrics == ['train_loss_epoch', 'train_loss_step', 'val_loss'] diff --git a/tests/test_callbacks/test_optimizer_callbacks.py b/tests/test_callback/test_optimizer_callback.py similarity index 89% rename from tests/test_callbacks/test_optimizer_callbacks.py rename to tests/test_callback/test_optimizer_callback.py index 910dede..8fc297b 100644 --- a/tests/test_callbacks/test_optimizer_callbacks.py +++ b/tests/test_callback/test_optimizer_callback.py @@ -1,8 +1,8 @@ -from pina.callbacks import SwitchOptimizer +from pina.callback import SwitchOptimizer import torch import pytest -from pina.solvers import PINN +from pina.solver import PINN from pina.trainer import Trainer from pina.model import FeedForward from pina.problem.zoo import Poisson2DSquareProblem as Poisson @@ -31,7 +31,7 @@ def test_switch_optimizer_constructor(): # # make the trainer # switch_opt_callback = SwitchOptimizer(lbfgs_optimizer, epoch_switch=3) # trainer = Trainer(solver=solver, -# callbacks=[switch_opt_callback], +# callback=[switch_opt_callback], # accelerator='cpu', # max_epochs=5) # trainer.train() diff --git a/tests/test_callbacks/test_progress_bar.py b/tests/test_callback/test_progress_bar.py similarity index 88% rename from tests/test_callbacks/test_progress_bar.py rename to tests/test_callback/test_progress_bar.py index 63df9c0..3a2f4fc 100644 --- a/tests/test_callbacks/test_progress_bar.py +++ b/tests/test_callback/test_progress_bar.py @@ -1,7 +1,7 @@ -from pina.solvers import PINN +from pina.solver import PINN from pina.trainer import Trainer from pina.model import FeedForward -from pina.callbacks.processing_callbacks import PINAProgressBar +from pina.callback.processing_callback import PINAProgressBar from pina.problem.zoo import Poisson2DSquareProblem as Poisson @@ -24,7 +24,7 @@ from pina.problem.zoo import Poisson2DSquareProblem as Poisson # def test_progress_bar_routine(): # # make the trainer # trainer = Trainer(solver=solver, -# callbacks=[ +# callback=[ # PINAProgressBar(['mean', 'laplace_D']) # ], # accelerator='cpu', diff --git a/tests/test_collector.py b/tests/test_collector.py index f55997f..284d643 100644 --- a/tests/test_collector.py +++ b/tests/test_collector.py @@ -7,7 +7,7 @@ from pina.problem import AbstractProblem, SpatialProblem from pina.domain import CartesianDomain from pina.equation.equation import Equation from pina.equation.equation_factory import FixedValue -from pina.operators import laplacian +from pina.operator import laplacian from pina.collector import Collector diff --git a/tests/test_data/test_datamodule.py b/tests/test_data/test_datamodule.py index f475c04..19b0ec3 100644 --- a/tests/test_data/test_datamodule.py +++ b/tests/test_data/test_datamodule.py @@ -6,7 +6,7 @@ from pina.problem.zoo import SupervisedProblem from pina.graph import RadiusGraph from pina.data.data_module import DummyDataloader from pina import Trainer -from pina.solvers import SupervisedSolver +from pina.solver import SupervisedSolver from torch_geometric.data import Batch from torch.utils.data import DataLoader diff --git a/tests/test_equations/test_equation.py b/tests/test_equations/test_equation.py index aed4b09..9d036d2 100644 --- a/tests/test_equations/test_equation.py +++ b/tests/test_equations/test_equation.py @@ -1,5 +1,5 @@ from pina.equation import Equation -from pina.operators import grad, laplacian +from pina.operator import grad, laplacian from pina import LabelTensor import torch import pytest diff --git a/tests/test_equations/test_systemequation.py b/tests/test_equations/test_systemequation.py index 7af90a7..2d62c34 100644 --- a/tests/test_equations/test_systemequation.py +++ b/tests/test_equations/test_systemequation.py @@ -1,5 +1,5 @@ from pina.equation import SystemEquation -from pina.operators import grad, laplacian +from pina.operator import grad, laplacian from pina import LabelTensor import torch import pytest diff --git a/tests/test_operators.py b/tests/test_operator.py similarity index 99% rename from tests/test_operators.py rename to tests/test_operator.py index 44e1c86..fe6d06f 100644 --- a/tests/test_operators.py +++ b/tests/test_operator.py @@ -2,7 +2,7 @@ import torch import pytest from pina import LabelTensor -from pina.operators import grad, div, laplacian +from pina.operator import grad, div, laplacian def func_vector(x): diff --git a/tests/test_solvers/test_causal_pinn.py b/tests/test_solver/test_causal_pinn.py similarity index 97% rename from tests/test_solvers/test_causal_pinn.py rename to tests/test_solver/test_causal_pinn.py index c5e87bb..f051df9 100644 --- a/tests/test_solvers/test_causal_pinn.py +++ b/tests/test_solver/test_causal_pinn.py @@ -3,7 +3,7 @@ import pytest from pina import LabelTensor, Condition from pina.problem import SpatialProblem -from pina.solvers import CausalPINN +from pina.solver import CausalPINN from pina.trainer import Trainer from pina.model import FeedForward from pina.problem.zoo import ( @@ -118,7 +118,7 @@ def test_solver_test(problem, batch_size, compile): @pytest.mark.parametrize("problem", [problem, inverse_problem]) def test_train_load_restore(problem): - dir = "tests/test_solvers/tmp" + dir = "tests/test_solver/tmp" problem = problem solver = CausalPINN(model=model, problem=problem) trainer = Trainer(solver=solver, @@ -153,4 +153,4 @@ def test_train_load_restore(problem): # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') + shutil.rmtree('tests/test_solver/tmp') diff --git a/tests/test_solvers/test_competitive_pinn.py b/tests/test_solver/test_competitive_pinn.py similarity index 97% rename from tests/test_solvers/test_competitive_pinn.py rename to tests/test_solver/test_competitive_pinn.py index 0a2f837..4468210 100644 --- a/tests/test_solvers/test_competitive_pinn.py +++ b/tests/test_solver/test_competitive_pinn.py @@ -2,7 +2,7 @@ import torch import pytest from pina import LabelTensor, Condition -from pina.solvers import CompetitivePINN as CompPINN +from pina.solver import CompetitivePINN as CompPINN from pina.trainer import Trainer from pina.model import FeedForward from pina.problem.zoo import ( @@ -107,7 +107,7 @@ def test_solver_test(problem, batch_size, compile): @pytest.mark.parametrize("problem", [problem, inverse_problem]) def test_train_load_restore(problem): - dir = "tests/test_solvers/tmp" + dir = "tests/test_solver/tmp" problem = problem solver = CompPINN(problem=problem, model=model) trainer = Trainer(solver=solver, @@ -142,4 +142,4 @@ def test_train_load_restore(problem): # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') \ No newline at end of file + shutil.rmtree('tests/test_solver/tmp') \ No newline at end of file diff --git a/tests/test_solvers/test_garom.py b/tests/test_solver/test_garom.py similarity index 98% rename from tests/test_solvers/test_garom.py rename to tests/test_solver/test_garom.py index 8039c83..dfe9fc4 100644 --- a/tests/test_solvers/test_garom.py +++ b/tests/test_solver/test_garom.py @@ -3,7 +3,7 @@ import torch.nn as nn import pytest from pina import Condition, LabelTensor -from pina.solvers import GAROM +from pina.solver import GAROM from pina.condition import InputOutputPointsCondition from pina.problem import AbstractProblem from pina.model import FeedForward @@ -141,7 +141,7 @@ def test_solver_test(batch_size, compile): def test_train_load_restore(): - dir = "tests/test_solvers/tmp/" + dir = "tests/test_solver/tmp/" problem = TensorProblem() solver = GAROM(problem=TensorProblem(), generator=Generator(), @@ -174,4 +174,4 @@ def test_train_load_restore(): # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') + shutil.rmtree('tests/test_solver/tmp') diff --git a/tests/test_solvers/test_gradient_pinn.py b/tests/test_solver/test_gradient_pinn.py similarity index 97% rename from tests/test_solvers/test_gradient_pinn.py rename to tests/test_solver/test_gradient_pinn.py index 4ec4c9b..0bab687 100644 --- a/tests/test_solvers/test_gradient_pinn.py +++ b/tests/test_solver/test_gradient_pinn.py @@ -3,7 +3,7 @@ import torch from pina import LabelTensor, Condition from pina.problem import TimeDependentProblem -from pina.solvers import GradientPINN +from pina.solver import GradientPINN from pina.model import FeedForward from pina.trainer import Trainer from pina.problem.zoo import ( @@ -117,7 +117,7 @@ def test_solver_test(problem, batch_size, compile): @pytest.mark.parametrize("problem", [problem, inverse_problem]) def test_train_load_restore(problem): - dir = "tests/test_solvers/tmp" + dir = "tests/test_solver/tmp" problem = problem solver = GradientPINN(model=model, problem=problem) trainer = Trainer(solver=solver, @@ -152,4 +152,4 @@ def test_train_load_restore(problem): # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') + shutil.rmtree('tests/test_solver/tmp') diff --git a/tests/test_solvers/test_pinn.py b/tests/test_solver/test_pinn.py similarity index 97% rename from tests/test_solvers/test_pinn.py rename to tests/test_solver/test_pinn.py index 2972000..6475726 100644 --- a/tests/test_solvers/test_pinn.py +++ b/tests/test_solver/test_pinn.py @@ -4,7 +4,7 @@ import torch from pina import LabelTensor, Condition from pina.model import FeedForward from pina.trainer import Trainer -from pina.solvers import PINN +from pina.solver import PINN from pina.condition import ( InputOutputPointsCondition, InputPointsEquationCondition, @@ -98,7 +98,7 @@ def test_solver_test(problem, batch_size, compile): @pytest.mark.parametrize("problem", [problem, inverse_problem]) def test_train_load_restore(problem): - dir = "tests/test_solvers/tmp" + dir = "tests/test_solver/tmp" problem = problem solver = PINN(model=model, problem=problem) trainer = Trainer(solver=solver, @@ -131,4 +131,4 @@ def test_train_load_restore(problem): # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') + shutil.rmtree('tests/test_solver/tmp') diff --git a/tests/test_solvers/test_rba_pinn.py b/tests/test_solver/test_rba_pinn.py similarity index 97% rename from tests/test_solvers/test_rba_pinn.py rename to tests/test_solver/test_rba_pinn.py index d195825..7777091 100644 --- a/tests/test_solvers/test_rba_pinn.py +++ b/tests/test_solver/test_rba_pinn.py @@ -4,7 +4,7 @@ import torch from pina import LabelTensor, Condition from pina.model import FeedForward from pina.trainer import Trainer -from pina.solvers import RBAPINN +from pina.solver import RBAPINN from pina.condition import ( InputOutputPointsCondition, InputPointsEquationCondition, @@ -119,7 +119,7 @@ def test_solver_test(problem, compile): @pytest.mark.parametrize("problem", [problem, inverse_problem]) def test_train_load_restore(problem): - dir = "tests/test_solvers/tmp" + dir = "tests/test_solver/tmp" problem = problem solver = RBAPINN(model=model, problem=problem) trainer = Trainer(solver=solver, @@ -154,4 +154,4 @@ def test_train_load_restore(problem): # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') + shutil.rmtree('tests/test_solver/tmp') diff --git a/tests/test_solvers/test_rom_solver.py b/tests/test_solver/test_rom_solver.py similarity index 98% rename from tests/test_solvers/test_rom_solver.py rename to tests/test_solver/test_rom_solver.py index e1d6625..a537192 100644 --- a/tests/test_solvers/test_rom_solver.py +++ b/tests/test_solver/test_rom_solver.py @@ -4,7 +4,7 @@ import pytest from pina import Condition, LabelTensor from pina.problem import AbstractProblem from pina.condition import InputOutputPointsCondition -from pina.solvers import ReducedOrderModelSolver +from pina.solver import ReducedOrderModelSolver from pina.trainer import Trainer from pina.model import FeedForward from pina.problem.zoo import Poisson2DSquareProblem @@ -149,7 +149,7 @@ def test_solver_test(use_lt, compile): def test_train_load_restore(): - dir = "tests/test_solvers/tmp/" + dir = "tests/test_solver/tmp/" problem = LabelTensorProblem() solver = ReducedOrderModelSolver(problem=problem, @@ -184,4 +184,4 @@ def test_train_load_restore(): solver.forward(test_pts)) # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') + shutil.rmtree('tests/test_solver/tmp') diff --git a/tests/test_solvers/test_self_adaptive_pinn.py b/tests/test_solver/test_self_adaptive_pinn.py similarity index 97% rename from tests/test_solvers/test_self_adaptive_pinn.py rename to tests/test_solver/test_self_adaptive_pinn.py index 3803b5b..348c63a 100644 --- a/tests/test_solvers/test_self_adaptive_pinn.py +++ b/tests/test_solver/test_self_adaptive_pinn.py @@ -2,7 +2,7 @@ import torch import pytest from pina import LabelTensor, Condition -from pina.solvers import SelfAdaptivePINN as SAPINN +from pina.solver import SelfAdaptivePINN as SAPINN from pina.trainer import Trainer from pina.model import FeedForward from pina.problem.zoo import ( @@ -122,7 +122,7 @@ def test_solver_test(problem, compile): @pytest.mark.parametrize("problem", [problem, inverse_problem]) def test_train_load_restore(problem): - dir = "tests/test_solvers/tmp" + dir = "tests/test_solver/tmp" problem = problem solver = SAPINN(model=model, problem=problem) trainer = Trainer(solver=solver, @@ -156,4 +156,4 @@ def test_train_load_restore(problem): # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') + shutil.rmtree('tests/test_solver/tmp') diff --git a/tests/test_solvers/test_supervised_solver.py b/tests/test_solver/test_supervised_solver.py similarity index 97% rename from tests/test_solvers/test_supervised_solver.py rename to tests/test_solver/test_supervised_solver.py index 9dbe7d8..2b8d608 100644 --- a/tests/test_solvers/test_supervised_solver.py +++ b/tests/test_solver/test_supervised_solver.py @@ -3,7 +3,7 @@ import pytest from pina import Condition, LabelTensor from pina.condition import InputOutputPointsCondition from pina.problem import AbstractProblem -from pina.solvers import SupervisedSolver +from pina.solver import SupervisedSolver from pina.model import FeedForward from pina.trainer import Trainer from torch._dynamo.eval_frame import OptimizedModule @@ -97,7 +97,7 @@ def test_solver_test(use_lt, compile): def test_train_load_restore(): - dir = "tests/test_solvers/tmp/" + dir = "tests/test_solver/tmp/" problem = LabelTensorProblem() solver = SupervisedSolver(problem=problem, model=model) trainer = Trainer(solver=solver, @@ -130,4 +130,4 @@ def test_train_load_restore(): # rm directories import shutil - shutil.rmtree('tests/test_solvers/tmp') + shutil.rmtree('tests/test_solver/tmp') diff --git a/tests/test_weighting/test_standard_weighting.py b/tests/test_weighting/test_standard_weighting.py index 049f886..2b32c61 100644 --- a/tests/test_weighting/test_standard_weighting.py +++ b/tests/test_weighting/test_standard_weighting.py @@ -2,7 +2,7 @@ import pytest import torch from pina import Trainer -from pina.solvers import PINN +from pina.solver import PINN from pina.model import FeedForward from pina.problem.zoo import Poisson2DSquareProblem from pina.loss import ScalarWeighting