Smith  0.1
Smith is an implicit thermal structural mechanics simulation code.
Classes | Namespaces | Functions
solid_mechanics_system.hpp File Reference

Defines the SolidMechanicsSystem struct and its factory function. More...

#include <algorithm>
#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"
Include dependency graph for solid_mechanics_system.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  smith::SolidMechanicsSystem< dim, order, DisplacementTimeRule, Coupling >
 System struct for solid dynamics with configurable time integration. More...
 
struct  smith::SolidMechanicsOptions
 Optional auxiliary systems and outputs for solid mechanics. More...
 

Namespaces

 smith
 Accelerator functionality.
 
 smith::detail
 Internal solid mechanics builder after coupling fields are assembled.
 

Functions

template<int dim, int order, typename DisplacementTimeRule >
auto smith::registerSolidMechanicsFields (std::shared_ptr< FieldStore > field_store, const SolidMechanicsOptions &options=SolidMechanicsOptions{})
 Register all solid mechanics fields into a FieldStore. More...
 
bool smith::detail::hasRegisteredStressOutput (const std::shared_ptr< FieldStore > &field_store)
 Return true when stress output fields were registered during phase 1.
 
std::shared_ptr< SystemSolver > smith::detail::makeCycleZeroSolver (std::shared_ptr< SystemSolver > solver, const Mesh &mesh)
 Build a cycle-zero solver from the main solver when possible, else use fallback defaults.
 
template<int dim, int order, typename DisplacementTimeRule , typename Coupling >
requires detail::is_coupling_packs_v< Coupling > auto smith::detail::buildSolidMechanicsSystemImpl (std::shared_ptr< FieldStore > field_store, const Coupling &coupling, std::shared_ptr< SystemSolver > solver, const SolidMechanicsOptions &options, bool has_stress_output)
 Internal solid builder 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...
 
template<int dim, int order, typename DisplacementTimeRule = ImplicitNewmarkSecondOrderTimeIntegrationRule, typename... ParamSpaces>
auto smith::buildSolidMechanicsSystem (const NonlinearSolverOptions &nonlinear_opts, const LinearSolverOptions &linear_opts, const SolidMechanicsOptions &options, std::shared_ptr< smith::Mesh > mesh, FieldType< ParamSpaces >... params)
 Build a SolidMechanicsSystem from solver options and a mesh, registering parameter fields inline. More...
 

Detailed Description

Defines the SolidMechanicsSystem struct and its factory function.

Definition in file solid_mechanics_system.hpp.