|
Smith
0.1
Smith is an implicit thermal structural mechanics simulation code.
|
Standalone composable system for a first-order internal variable (damage, plasticity, etc.). More...
#include "smith/differentiable_numerics/field_store.hpp"#include "smith/differentiable_numerics/nonlinear_block_solver.hpp"#include "smith/differentiable_numerics/dirichlet_boundary_conditions.hpp"#include "smith/differentiable_numerics/state_advancer.hpp"#include "smith/differentiable_numerics/multiphysics_time_integrator.hpp"#include "smith/differentiable_numerics/time_integration_rule.hpp"#include "smith/physics/functional_weak_form.hpp"#include "smith/differentiable_numerics/differentiable_physics.hpp"#include "smith/physics/weak_form.hpp"#include "smith/differentiable_numerics/system_base.hpp"#include "smith/differentiable_numerics/coupling_params.hpp"

Go to the source code of this file.
Classes | |
| struct | smith::InternalVariableSystem< dim, StateSpace, InternalVarTimeRule, Coupling > |
| System for a single internal variable using a two-state first-order rule. More... | |
Namespaces | |
| smith | |
| Accelerator functionality. | |
| smith::detail | |
| Internal solid mechanics builder after coupling fields are assembled. | |
Functions | |
| template<int dim, typename StateSpace , typename InternalVarTimeRule , typename... parameter_space> | |
| auto | smith::registerInternalVariableFields (std::shared_ptr< FieldStore > field_store, FieldType< parameter_space >... parameter_types) |
| Register state variable fields into a FieldStore. More... | |
| template<int dim, typename StateSpace , typename InternalVarTimeRule , typename... parameter_space> | |
| auto | smith::registerStateVariableFields (std::shared_ptr< FieldStore > field_store, FieldType< parameter_space >... parameter_types) |
Backward-compatible alias for registerInternalVariableFields. | |
| template<int dim, typename StateSpace , typename InternalVarTimeRule , typename Coupling > | |
| requires detail::is_coupling_packs_v< Coupling > auto | smith::detail::buildInternalVariableSystemImpl (std::shared_ptr< FieldStore > field_store, const Coupling &coupling, std::shared_ptr< SystemSolver > solver) |
| Internal builder for an internal-variable system after public registration and coupling collection. | |
| template<typename SelfFields > | |
| smith::requires (detail::has_time_rule_v< SelfFields >) auto buildSolidMechanicsSystem(std | |
| Build a SolidMechanicsSystem from already-registered field packs. More... | |
| template<typename SelfFields , typename... PFs> | |
| smith::requires (detail::has_time_rule_v< SelfFields >) auto buildSolidMechanicsSystem(std | |
| Build a SolidMechanicsSystem from registered self fields plus coupled physics fields. More... | |
| template<typename SelfFields , typename... PFs, typename... ParamSpaces> | |
| smith::requires (detail::has_time_rule_v< SelfFields >) auto buildSolidMechanicsSystem(std | |
| Build a SolidMechanicsSystem from registered self fields, coupled physics fields, and parameter fields. More... | |
Standalone composable system for a first-order internal variable (damage, plasticity, etc.).
Two-phase factory: auto internal_variable_fields = registerInternalVariableFields<StateSpace, StateRule>( field_store, params...);
auto internal_variable_system = buildInternalVariableSystem<dim, StateSpace, StateRule>( solver, internal_variable_fields, couplingFields(solid_fields), param_fields);
The returned PhysicsFields from registerInternalVariableFields carries field tokens (state_solve_state, state) that can be injected into another physics system (e.g. SolidMechanicsSystem) as coupling input.
addEvolution registers an ODE residual of the form: evolution_law(t_info, alpha_val, alpha_dot, interpolated_coupling_fields..., params...) == 0
With solid displacement coupling, the callback receives (u, v, a) rather than raw (u_solve_state, u_old, v_old, a_old).
Definition in file state_variable_system.hpp.