|
|
using | SolidWeakFormType = TimeDiscretizedWeakForm< dim, H1< disp_order, dim >, Parameters< H1< disp_order, dim >, H1< disp_order, dim >, H1< disp_order, dim >, H1< disp_order, dim >, StateSpace, StateSpace, parameter_space... > > |
| | using
|
| |
|
using | StateWeakFormType = TimeDiscretizedWeakForm< dim, StateSpace, Parameters< StateSpace, StateSpace, H1< disp_order, dim >, H1< disp_order, dim >, H1< disp_order, dim >, H1< disp_order, dim >, parameter_space... > > |
| | using
|
| |
|
using | CycleZeroSolidWeakFormType = TimeDiscretizedWeakForm< dim, H1< disp_order, dim >, Parameters< H1< disp_order, dim >, H1< disp_order, dim >, H1< disp_order, dim >, StateSpace, parameter_space... > > |
| | using
|
| |
|
| std::vector< FieldState > | getStateFields () const |
| | Get the list of all state fields (disp_pred, disp, vel, accel, state_pred, state). More...
|
| |
| std::vector< FieldState > | getOutputFieldStates () const |
| | Get the list of physical, non-solve state fields. More...
|
| |
| std::vector< ReactionInfo > | getReactionInfos () const |
| | Get information about reaction fields for this system. More...
|
| |
| std::unique_ptr< DifferentiablePhysics > | createDifferentiablePhysics (std::string physics_name) |
| | Create a DifferentiablePhysics object for this system. More...
|
| |
| template<typename MaterialType > |
| void | setMaterial (const MaterialType &material, const std::string &domain_name) |
| | Set the material model for the solid mechanics part. More...
|
| |
| template<int... active_parameters, typename BodyForceType > |
| void | addBodyForce (DependsOn< active_parameters... > depends_on, const std::string &domain_name, BodyForceType force_function) |
| | Add a body force to the solid mechanics part (with DependsOn). More...
|
| |
| template<typename BodyForceType > |
| void | addBodyForce (const std::string &domain_name, BodyForceType force_function) |
| | Add a body force that depends on all state and parameter fields. More...
|
| |
| template<int... active_parameters, typename TractionType > |
| void | addTraction (DependsOn< active_parameters... > depends_on, const std::string &domain_name, TractionType traction_function) |
| | Add a surface traction to the solid mechanics part (with DependsOn). More...
|
| |
| template<typename TractionType > |
| void | addTraction (const std::string &domain_name, TractionType traction_function) |
| | Add a surface traction that depends on all state and parameter fields. More...
|
| |
| template<int... active_parameters, typename PressureType > |
| void | addPressure (DependsOn< active_parameters... > depends_on, const std::string &domain_name, PressureType pressure_function) |
| | Add a pressure boundary condition (follower force) (with DependsOn). More...
|
| |
| template<typename PressureType > |
| void | addPressure (const std::string &domain_name, PressureType pressure_function) |
| | Add a pressure boundary condition that depends on all state and parameter fields. More...
|
| |
| template<typename EvolutionType > |
| void | addStateEvolution (const std::string &domain_name, EvolutionType evolution_law) |
| | Add the evolution law for the internal variable. More...
|
| |
| const std::vector< FieldState > & | getParameterFields () const |
| | Get the list of all parameter fields. More...
|
| |
| std::string | prefix (const std::string &name) const |
| | Helper function to prepend the physics name to a string. More...
|
| |
|
std::vector< ReactionInfo > | getReactionInfos () const |
| | Metadata for dual outputs exported by this system.
|
| |
template<int dim, int disp_order, typename StateSpace, typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
struct smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >
System struct for solid mechanics with an additional internal variable (L2 state).
Displacement uses a 4-state second-order layout (displacement_solve_state, displacement, velocity, acceleration). Internal variable uses a 2-state first-order layout (state_solve_state, state). Total: 6 state fields.
- Template Parameters
-
| dim | Spatial dimension. |
| disp_order | Polynomial order for displacement field. |
| StateSpace | Finite element space for the internal variable (e.g., L2<order>). |
| DisplacementTimeRule | Time integration rule for displacement (must have num_states == 4). |
| InternalVarTimeRule | Time integration rule for the internal variable (must have num_states == 2). |
| parameter_space | Parameter spaces for material properties. |
Definition at line 46 of file solid_mechanics_with_internal_vars_system.hpp.
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<typename BodyForceType >
| void smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >::addBodyForce |
( |
const std::string & |
domain_name, |
|
|
BodyForceType |
force_function |
|
) |
| |
|
inline |
Add a body force that depends on all state and parameter fields.
- Parameters
-
| domain_name | The name of the domain where the body force is applied. |
| force_function | (t, X, u, v, a, alpha, alpha_dot, params...) -> force vector. |
Definition at line 202 of file solid_mechanics_with_internal_vars_system.hpp.
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<int... active_parameters, typename BodyForceType >
| void smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >::addBodyForce |
( |
DependsOn< active_parameters... > |
depends_on, |
|
|
const std::string & |
domain_name, |
|
|
BodyForceType |
force_function |
|
) |
| |
|
inline |
Add a body force to the solid mechanics part (with DependsOn).
- Parameters
-
| depends_on | Selects which primal and parameter fields the contribution depends on. |
| domain_name | The name of the domain where the body force is applied. |
| force_function | (t, X, u, v, a, alpha, alpha_dot, params...) -> force vector. |
Definition at line 173 of file solid_mechanics_with_internal_vars_system.hpp.
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<typename PressureType >
| void smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >::addPressure |
( |
const std::string & |
domain_name, |
|
|
PressureType |
pressure_function |
|
) |
| |
|
inline |
Add a pressure boundary condition that depends on all state and parameter fields.
- Parameters
-
| domain_name | The name of the boundary where the pressure is applied. |
| pressure_function | (t, X, u, v, a, alpha, alpha_dot, params...) -> pressure scalar. |
Definition at line 302 of file solid_mechanics_with_internal_vars_system.hpp.
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<int... active_parameters, typename PressureType >
| void smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >::addPressure |
( |
DependsOn< active_parameters... > |
depends_on, |
|
|
const std::string & |
domain_name, |
|
|
PressureType |
pressure_function |
|
) |
| |
|
inline |
Add a pressure boundary condition (follower force) (with DependsOn).
- Parameters
-
| depends_on | Selects which primal and parameter fields the contribution depends on. |
| domain_name | The name of the boundary where the pressure is applied. |
| pressure_function | (t, X, u, v, a, alpha, alpha_dot, params...) -> pressure scalar. |
Definition at line 256 of file solid_mechanics_with_internal_vars_system.hpp.
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<typename EvolutionType >
| void smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >::addStateEvolution |
( |
const std::string & |
domain_name, |
|
|
EvolutionType |
evolution_law |
|
) |
| |
|
inline |
Add the evolution law for the internal variable.
- Template Parameters
-
| EvolutionType | The evolution law function type. |
- Parameters
-
| domain_name | The name of the domain. |
| evolution_law | Function (t_info, alpha, alpha_dot, grad_u, params...) returning the ODE residual. |
Definition at line 314 of file solid_mechanics_with_internal_vars_system.hpp.
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<typename TractionType >
| void smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >::addTraction |
( |
const std::string & |
domain_name, |
|
|
TractionType |
traction_function |
|
) |
| |
|
inline |
Add a surface traction that depends on all state and parameter fields.
- Parameters
-
| domain_name | The name of the boundary where the traction is applied. |
| traction_function | (t, X, n, u, v, a, alpha, alpha_dot, params...) -> traction vector. |
Definition at line 244 of file solid_mechanics_with_internal_vars_system.hpp.
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<int... active_parameters, typename TractionType >
| void smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >::addTraction |
( |
DependsOn< active_parameters... > |
depends_on, |
|
|
const std::string & |
domain_name, |
|
|
TractionType |
traction_function |
|
) |
| |
|
inline |
Add a surface traction to the solid mechanics part (with DependsOn).
- Parameters
-
| depends_on | Selects which primal and parameter fields the contribution depends on. |
| domain_name | The name of the boundary where the traction is applied. |
| traction_function | (t, X, n, u, v, a, alpha, alpha_dot, params...) -> traction vector. |
Definition at line 214 of file solid_mechanics_with_internal_vars_system.hpp.
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<int dim, int disp_order, typename StateSpace , typename DisplacementTimeRule = QuasiStaticSecondOrderTimeIntegrationRule, typename InternalVarTimeRule = BackwardEulerFirstOrderTimeIntegrationRule, typename... parameter_space>
template<typename MaterialType >
| void smith::SolidMechanicsWithInternalVarsSystem< dim, disp_order, StateSpace, DisplacementTimeRule, InternalVarTimeRule, parameter_space >::setMaterial |
( |
const MaterialType & |
material, |
|
|
const std::string & |
domain_name |
|
) |
| |
|
inline |
Set the material model for the solid mechanics part.
The material is called as material(state, grad_u_current, alpha_current, params...) and must expose a density member for the cycle-zero acceleration solve.
- Template Parameters
-
| MaterialType | The material model type. |
- Parameters
-
| material | The material model instance. |
| domain_name | The name of the domain to apply the material to. |
Definition at line 139 of file solid_mechanics_with_internal_vars_system.hpp.