Smith  0.1
Smith is an implicit thermal structural mechanics simulation code.
Namespaces | Functions
explicit_dynamic_solve.hpp File Reference
#include "smith/physics/weak_form.hpp"
#include "smith/differentiable_numerics/field_state.hpp"
#include "smith/differentiable_numerics/lumped_mass_weak_form.hpp"
#include "smith/physics/boundary_conditions/boundary_condition_manager.hpp"
Include dependency graph for explicit_dynamic_solve.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 smith
 Accelerator functionality.
 

Functions

FieldState smith::computeLumpedMass (const WeakForm *mass_residual_eval, const FieldState &shape_u, const FieldState &lumped_field, const FieldState &rho)
 gretl-function implementation to compute lumped mass vectors from shape_displacements FieldState and a density field FieldState. A lumped_field is also passed to communicate the intended dimension of the lumped mass. For example, as scalar lumped field will result in a single lumped mass per node, while a vector lumped field will give a nodal lumped field, where every component of the lumped vector per node has the full mass lumped value (the sum of all lumped masses will be dim * total_mass)
 
FieldState smith::diagInverse (const FieldState &x)
 gretl-function implementation to compute invert the values for every entry in a FieldState.
 
FieldState smith::evalResidual (const WeakForm *residual_eval, FieldState shape_disp, const std::vector< FieldState > &states, const std::vector< FieldState > &params, TimeInfo time_info, size_t inertial_index)
 gretl-function implementation which evaluates the residual force (which is minus the mechanical force) given shape displacement, states and params. The inertial index denotes which index in the state corresponds to the highest time derivative term (e.g., acceleration for solid mechanics).
 
FieldState smith::componentWiseMult (const FieldState &x, const FieldState &y, const BoundaryConditionManager *bc_manager)
 gretl-function implementation which multiplies x and y component-wise to create a new FieldState. The bc_manager is used to zero the constrained dofs of the output Field.
 
FieldState smith::negativeComponentWiseMult (const FieldState &x, const FieldState &y, const BoundaryConditionManager *bc_manager)
 gretl-function implementation which multiplies and then negates x and y component-wise to create a new FieldState. The bc_manager is used to zero the constrained dofs of the output Field. The intended use-case here is explicit dynamics, where the residual is the negative of the force, and the inverse of the mass is strictly positive. The negative component-wise multiplication of these gives the nodal accelerations.