NEML2 1.4.0
Loading...
Searching...
No Matches
LargeDeformationIncrementalSolidMechanicsDriver Class Reference

The transient driver specialized for solid mechanics problems. More...

Detailed Description

The transient driver specialized for solid mechanics problems.

#include <LargeDeformationIncrementalSolidMechanicsDriver.h>

Inheritance diagram for LargeDeformationIncrementalSolidMechanicsDriver:

Public Member Functions

 LargeDeformationIncrementalSolidMechanicsDriver (const OptionSet &options)
 Construct a new LargeDeformationIncrementalSolidMechanicsDriver object.
 
- Public Member Functions inherited from TransientDriver
 TransientDriver (const OptionSet &options)
 Construct a new TransientDriver object.
 
bool run () override
 Let the driver run, return true upon successful completion, and return false otherwise.
 
virtual std::string save_as_path () const
 The destination file/path to save the results.
 
virtual torch::nn::ModuleDict result () const
 The results (input and output) from all time steps.
 
- Public Member Functions inherited from Driver
 Driver (const OptionSet &options)
 Construct a new Driver object.
 
- Public Member Functions inherited from NEML2Object
 NEML2Object (const OptionSet &options)
 Construct a new NEML2Object object.
 
virtual ~NEML2Object ()=default
 
const OptionSetinput_options () const
 
virtual void setup ()
 Setup this object.
 
const std::string & name () const
 A readonly reference to the object's name.
 
const std::string & type () const
 A readonly reference to the object's type.
 
const std::string & path () const
 A readonly reference to the object's path.
 
const std::string & doc () const
 A readonly reference to the object's docstring.
 
template<typename T = NEML2Object>
const T * host () const
 Get a readonly pointer to the host.
 
template<typename T = NEML2Object>
T * host ()
 Get a writable pointer to the host.
 

Static Public Member Functions

static OptionSet expected_options ()
 
- Static Public Member Functions inherited from TransientDriver
static OptionSet expected_options ()
 
- Static Public Member Functions inherited from Driver
static OptionSet expected_options ()
 
- Static Public Member Functions inherited from NEML2Object
static OptionSet expected_options ()
 

Protected Member Functions

virtual void update_forces () override
 Update the driving forces for the current time step.
 
void check_integrity () const override
 Check the integrity of the set up.
 
- Protected Member Functions inherited from TransientDriver
virtual bool solve ()
 Solve the initial value problem.
 
virtual void advance_step ()
 Advance in time: the state becomes old state, and forces become old forces.
 
virtual void apply_ic ()
 Apply the initial conditions.
 
virtual void apply_predictor ()
 Apply the predictor to calculate the initial guess for the current time step.
 
virtual void solve_step ()
 Perform the constitutive update for the current time step.
 
virtual void store_input ()
 Save the input of the current time step.
 
virtual void store_output ()
 Save the output of the current time step.
 
virtual void output () const
 Save the results into the destination file/path.
 

Protected Attributes

std::string _control
 The control method to drive the constitutive update.
 
SR2 _driving_force
 
VariableName _driving_force_name
 
VariableName _vorticity_name
 
const bool _vorticity_prescribed
 Whether vorticity is prescribed.
 
WR2 _vorticity
 
- Protected Attributes inherited from TransientDriver
Model_model
 The model which the driver uses to perform constitutive updates.
 
const torch::Device _device
 The device on which to evaluate the model.
 
Scalar _time
 The current time.
 
TorchSize _step_count
 The current step count.
 
VariableName _time_name
 VariableName for the time.
 
TorchSize _nsteps
 Total number of steps.
 
TorchSize _nbatch
 The batch size.
 
LabeledVector_in
 The input to the constitutive model.
 
LabeledVector_out
 The output of the constitutive model.
 
std::string _predictor
 The predictor used to set the initial guess.
 
std::string _save_as
 The destination file name or file path.
 
const bool _show_params
 Set to true to list all the model parameters at the beginning.
 
const bool _show_input
 Set to true to show model's input axis at the beginning.
 
const bool _show_output
 Set to true to show model's output axis at the beginning.
 
LabeledVector _result_in
 Inputs from all time steps.
 
LabeledVector _result_out
 Outputs from all time steps.
 
std::vector< VariableName_ic_scalar_names
 Names for scalar initial conditions.
 
std::vector< CrossRef< Scalar > > _ic_scalar_values
 Values for the scalar initial conditions.
 
std::vector< VariableName_ic_rot_names
 Names for the Rot initial conditions.
 
std::vector< CrossRef< Rot > > _ic_rot_values
 Values for the Rot initial conditions.
 
std::vector< VariableName_ic_sr2_names
 Names for the SR2 initial conditions.
 
std::vector< CrossRef< SR2 > > _ic_sr2_values
 Values for the SR2 initial conditions.
 
Real _cp_elastic_scale
 Scale value for initial cp predictor.
 
- Protected Attributes inherited from Driver
bool _verbose
 Whether to print out additional (debugging) information during the execution.
 

Constructor & Destructor Documentation

◆ LargeDeformationIncrementalSolidMechanicsDriver()

Construct a new LargeDeformationIncrementalSolidMechanicsDriver object.

Parameters
optionsThe options extracted from the input file

Member Function Documentation

◆ check_integrity()

void check_integrity ( ) const
overrideprotectedvirtual

Check the integrity of the set up.

Reimplemented from TransientDriver.

◆ expected_options()

OptionSet expected_options ( )
static

◆ update_forces()

void update_forces ( )
overrideprotectedvirtual

Update the driving forces for the current time step.

Reimplemented from TransientDriver.

Member Data Documentation

◆ _control

std::string _control
protected

The control method to drive the constitutive update.

STRAIN: Use strain control to drive the update. STRESS: Use stress control to drive the update.

◆ _driving_force

SR2 _driving_force
protected

The value of the driving force, depending on _control this is either the prescribed strain or the prescribed stress.

◆ _driving_force_name

VariableName _driving_force_name
protected

The name of the driving force, depending on _control this is either the prescribed strain or the prescribed stress.

◆ _vorticity

WR2 _vorticity
protected

The value of the (total) vorticity

◆ _vorticity_name

VariableName _vorticity_name
protected

The name of the total vorticity

◆ _vorticity_prescribed

const bool _vorticity_prescribed
protected

Whether vorticity is prescribed.