pinnicle.physics
pinnicle.physics.constants module
pinnicle.physics.continuity module
- class pinnicle.physics.continuity.MC(parameters=<pinnicle.physics.continuity.MCEquationParameter object>)[source]
Bases:
EquationBaseMC on 2D problem
- class pinnicle.physics.continuity.MC4MOLHO(parameters=<pinnicle.physics.continuity.MC4MOLHOEquationParameter object>)[source]
Bases:
EquationBaseMC include vertical shear
- class pinnicle.physics.continuity.MC4MOLHOEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for mass conservation with vertical shear
- class pinnicle.physics.continuity.MCEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for mass conservation
- class pinnicle.physics.continuity.Thickness(parameters=<pinnicle.physics.continuity.ThicknessEquationParameter object>)[source]
Bases:
EquationBase2D time depenent thickness evolution
pinnicle.physics.dummy module
- class pinnicle.physics.dummy.Dummy(parameters=<pinnicle.physics.dummy.DummyEquationParameter object>)[source]
Bases:
EquationBase
- class pinnicle.physics.dummy.DummyEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for Dummy PDE
pinnicle.physics.equationbase module
- class pinnicle.physics.equationbase.EquationBase(parameters=<pinnicle.parameter.EquationParameter object>)[source]
-
base class of all the equations
- subclasses = {'CalvingFront': <class 'pinnicle.physics.boundaryconditions.CalvingFrontBC'>, 'DUMMY': <class 'pinnicle.physics.dummy.Dummy'>, 'MC': <class 'pinnicle.physics.continuity.MC'>, 'MC4MOLHO': <class 'pinnicle.physics.continuity.MC4MOLHO'>, 'MOLHO': <class 'pinnicle.physics.stressbalance.MOLHO'>, 'MOLHO Taub': <class 'pinnicle.physics.stressbalance.MOLHO_Taub'>, 'Mass transport': <class 'pinnicle.physics.continuity.Thickness'>, 'SSA': <class 'pinnicle.physics.stressbalance.SSA'>, 'SSA First': <class 'pinnicle.physics.stressbalance.SSA_First'>, 'SSA Taub': <class 'pinnicle.physics.stressbalance.SSA_Taub'>, 'SSA_SHELF': <class 'pinnicle.physics.iceshelf.SSAShelf'>, 'SSA_SHELF_VB': <class 'pinnicle.physics.iceshelf.SSAShelfVariableB'>, 'SSA_VB': <class 'pinnicle.physics.stressbalance.SSAVariableB'>, 'Time_Invariant': <class 'pinnicle.physics.timeinvariant.TimeInvariantConstraint'>, 'Weertman': <class 'pinnicle.physics.friction.WeertmanFriction'>}
- update_id(global_input_var=None, global_output_var=None)[source]
update component id, always remeber to call this in compiling the model
- Parameters:
global_input_var – List of input_variables to nn, these variables are shared across all the physics
global_output_var – List of output_variables from nn, these variables are shared across all the physics
pinnicle.physics.physics module
- class pinnicle.physics.physics.Physics(parameters=<pinnicle.parameter.PhysicsParameter object>)[source]
Bases:
objectAll the physics in used as constraint in the PINN
- calving_front(nn_input_var, nn_output_var, X)[source]
calculate the calving front boundary condition
- Parameters:
nn_input_var – input tensor to the nn
nn_output_var – output tensor from the nn
X – NumPy array of the collocation points defined on the boundary, required by deepxde
- operator(pname)[source]
grab the pde operator, used for testing the pdes and plotting
- Parameters:
pname – pde operator name (string), case insensitive
- pdes(nn_input_var, nn_output_var)[source]
a wrapper of all the equations used in the PINN, Args need to follow the requirment by deepxde
- Parameters:
nn_input_var – input tensor to the nn
nn_output_var – output tensor from the nn
- user_defined_gradient(output_var, input_var)[source]
- compute the gradient of output_var with respect to the input_var, return a function wrapper for PointSetOperatorBC
TODO: implement jax version
- Parameters:
input_var – string name of input variable (independent variable)
output_var – string name of output variable (dependent variable)
- vel_mag(nn_input_var, nn_output_var, X)[source]
a wrapper for PointSetOperatorBC func call, Args need to follow the requirment by deepxde
- Parameters:
nn_input_var – input tensor to the nn
nn_output_var – output tensor from the nn
X – NumPy array of the collocation points defined on the boundary, required by deepxde
pinnicle.physics.stressbalance module
- class pinnicle.physics.stressbalance.MOLHO(parameters=<pinnicle.parameter.EquationParameter object>)[source]
Bases:
EquationBaseMOLHO on 2D problem with uniform B
- class pinnicle.physics.stressbalance.MOLHOEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for MOLHO
- class pinnicle.physics.stressbalance.MOLHOTauEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for MOLHO Taub
- class pinnicle.physics.stressbalance.MOLHO_Taub(parameters=<pinnicle.parameter.EquationParameter object>)[source]
Bases:
EquationBaseMOLHO on 2D problem with uniform B, but use taub
- class pinnicle.physics.stressbalance.SSA(parameters=<pinnicle.physics.stressbalance.SSAEquationParameter object>)[source]
Bases:
EquationBaseSSA on 2D problem with uniform B
- class pinnicle.physics.stressbalance.SSAEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for SSA
- class pinnicle.physics.stressbalance.SSAFirstEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for SSA first order form
- class pinnicle.physics.stressbalance.SSATauEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for SSA Taub
- class pinnicle.physics.stressbalance.SSAVariableB(parameters=<pinnicle.physics.stressbalance.SSAVariableBEquationParameter object>)[source]
Bases:
EquationBaseSSA on 2D problem with spatially varying B
- class pinnicle.physics.stressbalance.SSAVariableBEquationParameter(param_dict={})[source]
Bases:
EquationParameter,Constantsdefault parameters for SSA, with spatially varying rheology B
- class pinnicle.physics.stressbalance.SSA_First(parameters=<pinnicle.physics.stressbalance.SSATauEquationParameter object>)[source]
Bases:
EquationBaseSSA on 2D problem with uniform B, no friction law, but use taub
- class pinnicle.physics.stressbalance.SSA_Taub(parameters=<pinnicle.physics.stressbalance.SSATauEquationParameter object>)[source]
Bases:
EquationBaseSSA on 2D problem with uniform B, no friction law, but use taub
pinnicle.physics.timeinvariant module
- class pinnicle.physics.timeinvariant.TimeInvariantConstraint(parameters=<pinnicle.physics.timeinvariant.TimeInvariantConstraintParameter object>)[source]
Bases:
EquationBaseA temporary solution to add time invariant constraint db/dt=0, dC/dt=0 to the PINN .. todo:
1. define these for every time independent equation, similar as _pde_jax 2. use tf.cond, and similar autograph for pytorch and jax (when they have these implemented), put everything all in _pde