|
Smith
0.1
Smith is an implicit thermal structural mechanics simulation code.
|
Container for a coupled thermo-mechanical system with configurable time integration. More...
#include <thermo_mechanics_system.hpp>

Public Types | |
| 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 >, H1< temp_order >, H1< temp_order >, parameter_space... > > |
| using for SolidWeakFormType | |
| using | ThermalWeakFormType = TimeDiscretizedWeakForm< dim, H1< temp_order >, Parameters< H1< temp_order >, H1< temp_order >, H1< disp_order, dim >, H1< disp_order, dim >, H1< disp_order, dim >, H1< disp_order, dim >, parameter_space... > > |
| using for ThermalWeakFormType | |
| using | CycleZeroWeakFormType = TimeDiscretizedWeakForm< dim, H1< disp_order, dim >, Parameters< H1< disp_order, dim >, H1< disp_order, dim >, H1< disp_order, dim >, H1< temp_order >, H1< temp_order >, parameter_space... > > |
| using for CycleZeroWeakFormType | |
Public Member Functions | |
| std::vector< FieldState > | getStateFields () const |
| Get the list of all state fields (disp_pred, disp, vel, accel, temp_pred, temp). 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 solid and thermal weak forms. More... | |
| template<int... active_parameters, typename BodyForceType > | |
| void | addSolidBodyForce (DependsOn< active_parameters... > depends_on, const std::string &domain_name, BodyForceType force_function) |
| Add a body force to the solid mechanics part of the system (with DependsOn). | |
| template<typename BodyForceType > | |
| void | addSolidBodyForce (const std::string &domain_name, BodyForceType force_function) |
| Add a body force to the solid mechanics part of the system. | |
| template<int... active_parameters, typename SurfaceFluxType > | |
| void | addSolidTraction (DependsOn< active_parameters... > depends_on, const std::string &domain_name, SurfaceFluxType flux_function) |
| Add a surface traction to the solid mechanics part (with DependsOn). | |
| template<typename SurfaceFluxType > | |
| void | addSolidTraction (const std::string &domain_name, SurfaceFluxType flux_function) |
| Add a surface traction to the solid mechanics part. | |
| template<int... active_parameters, typename BodySourceType > | |
| void | addHeatSource (DependsOn< active_parameters... > depends_on, const std::string &domain_name, BodySourceType source_function) |
| Add a body heat source to the thermal part (with DependsOn). | |
| template<typename BodySourceType > | |
| void | addHeatSource (const std::string &domain_name, BodySourceType source_function) |
| Add a body heat source to the thermal part. | |
| template<int... active_parameters, typename SurfaceFluxType > | |
| void | addHeatFlux (DependsOn< active_parameters... > depends_on, const std::string &domain_name, SurfaceFluxType flux_function) |
| Add a boundary heat flux to the thermal part (with DependsOn). | |
| template<typename SurfaceFluxType > | |
| void | addHeatFlux (const std::string &domain_name, SurfaceFluxType flux_function) |
| Add a boundary heat flux to the thermal part. | |
| 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) to the solid part (with DependsOn). | |
| template<typename PressureType > | |
| void | addPressure (const std::string &domain_name, PressureType pressure_function) |
| Add a pressure boundary condition (follower force) to the solid part. | |
Public Member Functions inherited from smith::SystemBase | |
| 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. | |
Public Attributes | |
| std::shared_ptr< SolidWeakFormType > | solid_weak_form |
| Solid mechanics weak form. | |
| std::shared_ptr< ThermalWeakFormType > | thermal_weak_form |
| Thermal weak form. | |
| std::shared_ptr< CycleZeroWeakFormType > | cycle_zero_weak_form |
| Cycle-zero weak form. | |
| std::shared_ptr< DirichletBoundaryConditions > | disp_bc |
| Displacement boundary conditions. | |
| std::shared_ptr< DirichletBoundaryConditions > | temperature_bc |
| Temperature boundary conditions. | |
| std::shared_ptr< DisplacementTimeRule > | disp_time_rule |
| Time integration for displacement. | |
| std::shared_ptr< TemperatureTimeRule > | temperature_time_rule |
| Time integration for temperature. | |
Public Attributes inherited from smith::SystemBase | |
| std::shared_ptr< FieldStore > | field_store |
| Field store managing the system's fields. | |
| std::shared_ptr< CoupledSystemSolver > | solver |
| The solver for the system. | |
| std::shared_ptr< StateAdvancer > | advancer |
| The state advancer. | |
| std::vector< FieldState > | parameter_fields |
| Optional parameter fields. | |
| std::string | prepend_name |
| Optional prepended name for all fields. | |
Container for a coupled thermo-mechanical system with configurable time integration.
Displacement uses a 4-state second-order layout (displacement_solve_state, displacement, velocity, acceleration). Temperature uses a 2-state first-order layout (temperature_solve_state, temperature). Total: 6 state fields.
| dim | Spatial dimension. |
| disp_order | Order of the displacement basis. |
| temp_order | Order of the temperature basis. |
| DisplacementTimeRule | Time integration rule type for displacement (must have num_states == 4). |
| TemperatureTimeRule | Time integration rule type for temperature (must have num_states == 2). |
| parameter_space | Finite element spaces for optional parameters. |
Definition at line 43 of file thermo_mechanics_system.hpp.
|
inline |
Create a DifferentiablePhysics object for this system.
| physics_name | The name of the physics. |
Definition at line 104 of file thermo_mechanics_system.hpp.
|
inline |
Get information about reaction fields for this system.
Definition at line 93 of file thermo_mechanics_system.hpp.
|
inline |
Get the list of all state fields (disp_pred, disp, vel, accel, temp_pred, temp).
Definition at line 79 of file thermo_mechanics_system.hpp.
|
inline |
Set the material model for a domain, defining integrals for solid and thermal weak forms.
The material is called as material(dt, state, grad_u, grad_v, T, grad_T, params...) and must expose a density member for the cycle-zero acceleration solve.
| MaterialType | The material model type. |
| material | The material model instance. |
| domain_name | The name of the domain to apply the material to. |
Definition at line 122 of file thermo_mechanics_system.hpp.