|
| std::vector< FieldState > | getStateFields () const |
| | Get the list of all state fields (displacement_solve_state, displacement, velocity, acceleration). 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 a domain, defining integrals for the solid weak form. 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 system (with DependsOn). More...
|
| |
| template<typename BodyForceType > |
| void | addBodyForce (const std::string &domain_name, BodyForceType force_function) |
| | Add a body force to the system. 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 (flux) to the system (with DependsOn). More...
|
| |
| template<typename TractionType > |
| void | addTraction (const std::string &domain_name, TractionType traction_function) |
| | Add a surface traction (flux) to the system. 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 (follower force). 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 order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
struct smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, parameter_space >
System struct for solid dynamics with configurable time integration.
Always uses a 4-state field layout (displacement_solve_state, displacement, velocity, acceleration). Use ImplicitNewmarkSecondOrderTimeIntegrationRule for transient dynamics, or QuasiStaticSecondOrderTimeIntegrationRule for quasi-static problems.
- Template Parameters
-
| dim | Spatial dimension. |
| order | Polynomial order for displacement field. |
| DisplacementTimeRule | Time integration rule type (must have num_states == 4). |
| parameter_space | Parameter spaces for material properties. |
Definition at line 41 of file solid_mechanics_system.hpp.
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
template<typename BodyForceType >
| void smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, parameter_space >::addBodyForce |
( |
const std::string & |
domain_name, |
|
|
BodyForceType |
force_function |
|
) |
| |
|
inline |
Add a body force to the system.
- Template Parameters
-
| BodyForceType | The body force function type. |
- Parameters
-
| domain_name | The name of the domain to apply the force to. |
| force_function | The force function (t, X, u, v, a, params...). |
Definition at line 165 of file solid_mechanics_system.hpp.
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
template<int... active_parameters, typename BodyForceType >
| void smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, parameter_space >::addBodyForce |
( |
DependsOn< active_parameters... > |
depends_on, |
|
|
const std::string & |
domain_name, |
|
|
BodyForceType |
force_function |
|
) |
| |
|
inline |
Add a body force to the system (with DependsOn).
- Template Parameters
-
| active_parameters | Indices of fields this force depends on. |
| BodyForceType | The body force function type. |
- Parameters
-
| depends_on | Dependency specification for which input fields to pass. |
| domain_name | The name of the domain to apply the force to. |
| force_function | The force function (t, X, u, v, a, params...). |
Definition at line 140 of file solid_mechanics_system.hpp.
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
template<typename PressureType >
| void smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, parameter_space >::addPressure |
( |
const std::string & |
domain_name, |
|
|
PressureType |
pressure_function |
|
) |
| |
|
inline |
Add a pressure boundary condition (follower force).
- Template Parameters
-
| PressureType | The pressure function type. |
- Parameters
-
| domain_name | The name of the boundary domain. |
| pressure_function | The pressure function (t, X, params...). |
Definition at line 259 of file solid_mechanics_system.hpp.
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
template<int... active_parameters, typename PressureType >
| void smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, 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).
- Template Parameters
-
| active_parameters | Indices of fields this pressure depends on. |
| PressureType | The pressure function type. |
- Parameters
-
| depends_on | Dependency specification for which input fields to pass. |
| domain_name | The name of the boundary domain. |
| pressure_function | The pressure function (t, X, params...). |
Definition at line 219 of file solid_mechanics_system.hpp.
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
template<typename TractionType >
| void smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, parameter_space >::addTraction |
( |
const std::string & |
domain_name, |
|
|
TractionType |
traction_function |
|
) |
| |
|
inline |
Add a surface traction (flux) to the system.
- Template Parameters
-
| TractionType | The traction function type. |
- Parameters
-
| domain_name | The name of the boundary domain to apply the traction to. |
| traction_function | The traction function (t, X, n, u, v, a, params...). |
Definition at line 205 of file solid_mechanics_system.hpp.
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
template<int... active_parameters, typename TractionType >
| void smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, parameter_space >::addTraction |
( |
DependsOn< active_parameters... > |
depends_on, |
|
|
const std::string & |
domain_name, |
|
|
TractionType |
traction_function |
|
) |
| |
|
inline |
Add a surface traction (flux) to the system (with DependsOn).
- Template Parameters
-
| active_parameters | Indices of fields this traction depends on. |
| TractionType | The traction function type. |
- Parameters
-
| depends_on | Dependency specification for which input fields to pass. |
| domain_name | The name of the boundary domain to apply the traction to. |
| traction_function | The traction function (t, X, n, u, v, a, params...). |
Definition at line 179 of file solid_mechanics_system.hpp.
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
Get the list of all state fields (displacement_solve_state, displacement, velocity, acceleration).
- Returns
- std::vector<FieldState> List of state fields.
Definition at line 64 of file solid_mechanics_system.hpp.
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... parameter_space>
template<typename MaterialType >
| void smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, parameter_space >::setMaterial |
( |
const MaterialType & |
material, |
|
|
const std::string & |
domain_name |
|
) |
| |
|
inline |
Set the material model for a domain, defining integrals for the solid weak form.
- 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 108 of file solid_mechanics_system.hpp.