Smith  0.1
Smith is an implicit thermal structural mechanics simulation code.
Public Types | Public Member Functions | Static Public Member Functions | List of all members
smith::SolidMechanicsStateAdvancer Class Reference

Implementation of the StateAdvancer interface for advancing the solution of solid mechanics problems. More...

#include <solid_mechanics_state_advancer.hpp>

Collaboration diagram for smith::SolidMechanicsStateAdvancer:
Collaboration graph
[legend]

Public Types

enum  STATE { DISPLACEMENT , VELOCITY , ACCELERATION }
 State enum for indexing convenience.
 

Public Member Functions

 SolidMechanicsStateAdvancer (std::shared_ptr< DifferentiableSolver > solid_solver, std::shared_ptr< DirichletBoundaryConditions > vector_bcs, std::shared_ptr< SecondOrderTimeDiscretizedWeakForms > solid_dynamic_weak_forms, ImplicitNewmarkSecondOrderTimeIntegrationRule time_rule)
 Constructor. More...
 
std::vector< FieldStateadvanceState (const TimeInfo &time_info, const FieldState &shape_disp, const std::vector< FieldState > &states_old, const std::vector< FieldState > &params) const override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
std::vector< ReactionStatecomputeReactions (const TimeInfo &time_info, const FieldState &shape_disp, const std::vector< FieldState > &states, const std::vector< FieldState > &params) const override
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
- Public Member Functions inherited from smith::StateAdvancer
virtual ~StateAdvancer ()
 destructor
 

Static Public Member Functions

template<typename FirstParamSpace , typename... ParamSpaces>
static std::vector< FieldStatecreateParams (gretl::DataStore &graph, const std::string &name, const std::vector< std::string > &param_names, const std::string &tag, size_t index=0)
 Recursive function for constructing parameter FieldStates of the appropriate space and name, register it on the gretl graph.
 
template<int spatial_dim, typename ShapeDispSpace , typename VectorSpace , typename... ParamSpaces>
static auto buildWeakFormAndStates (const std::shared_ptr< Mesh > &mesh, const std::shared_ptr< gretl::DataStore > &graph, ImplicitNewmarkSecondOrderTimeIntegrationRule time_rule, std::string physics_name, const std::vector< std::string > &param_names, double initial_time=0.0)
 Utility function to consistently construct all the weak forms and FieldStates for a solid mechanics application you will get back: shape_disp, states, params, time, and solid_mechanics_weak_form.
 

Detailed Description

Implementation of the StateAdvancer interface for advancing the solution of solid mechanics problems.

Definition at line 33 of file solid_mechanics_state_advancer.hpp.

Constructor & Destructor Documentation

◆ SolidMechanicsStateAdvancer()

smith::SolidMechanicsStateAdvancer::SolidMechanicsStateAdvancer ( std::shared_ptr< DifferentiableSolver solid_solver,
std::shared_ptr< DirichletBoundaryConditions vector_bcs,
std::shared_ptr< SecondOrderTimeDiscretizedWeakForms solid_dynamic_weak_forms,
ImplicitNewmarkSecondOrderTimeIntegrationRule  time_rule 
)

Constructor.

Parameters
solid_solverdifferentiable solve
vector_bcsDirichlet boundary conditions that can be applies to vector unknowns
solid_dynamic_weak_formsThe weak-forms for time discretized solid mechanics equations
time_ruleThe specific time-integration rule, typically Implicit Newmark or Quasi-static

Definition at line 16 of file solid_mechanics_state_advancer.cpp.


The documentation for this class was generated from the following files: