www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
LinearViscoelasticityManager Class Reference

This class manages a LinearViscoelasticityBase object. More...

#include <LinearViscoelasticityManager.h>

Inheritance diagram for LinearViscoelasticityManager:
[legend]

Public Member Functions

 LinearViscoelasticityManager (const InputParameters &parameters)
 

Protected Member Functions

virtual void initialize () override
 
virtual void execute () override
 
virtual void threadJoin (const UserObject &) override
 
virtual void finalize () override
 

Protected Attributes

std::string _stress_name
 
const MaterialProperty< RankTwoTensor > & _stress
 
std::string _creep_strain_name
 
const MaterialProperty< RankTwoTensor > & _creep_strain
 Name of the creep strain variable used for the update of the viscoelastic strain. More...
 
std::string _elastic_strain_name
 
const MaterialProperty< RankTwoTensor > & _elastic_strain
 Name of the elastic strain variable used for the update of the viscoelastic strain. More...
 
std::string _viscoelastic_model_name
 Name of the viscoelastic model to update. More...
 
std::shared_ptr< LinearViscoelasticityBase_viscoelastic_model
 Pointer to the viscoelastic model to update. More...
 

Detailed Description

This class manages a LinearViscoelasticityBase object.

Its primary purpose is to initialize the internal MaterialProperties contained in the viscoelastic model at the beginning of each time step, and update those properties at the end of each time step.

Whenever a LinearViscoelasticityBase object is created, it must be associated to one LinearViscoelasticityManager user object, otherwise the viscoelastic creep strains and properties will not be computed accordingly.

See LinearViscoelasticityBase for more information.

Definition at line 31 of file LinearViscoelasticityManager.h.

Constructor & Destructor Documentation

LinearViscoelasticityManager::LinearViscoelasticityManager ( const InputParameters &  parameters)

Definition at line 31 of file LinearViscoelasticityManager.C.

32  : ElementUserObject(parameters),
33  _stress_name(getParam<std::string>("stress_name")),
34  _stress(getMaterialPropertyByName<RankTwoTensor>(_stress_name)),
35  _creep_strain_name(getParam<std::string>("creep_strain_name")),
36  _creep_strain(getMaterialPropertyByName<RankTwoTensor>(_creep_strain_name)),
37  _elastic_strain_name(getParam<std::string>("elastic_strain_name")),
38  _elastic_strain(getMaterialPropertyByName<RankTwoTensor>(_elastic_strain_name)),
39  _viscoelastic_model_name(getParam<std::string>("viscoelastic_model")),
40  _viscoelastic_model(nullptr)
41 {
42 }
std::shared_ptr< LinearViscoelasticityBase > _viscoelastic_model
Pointer to the viscoelastic model to update.
const MaterialProperty< RankTwoTensor > & _creep_strain
Name of the creep strain variable used for the update of the viscoelastic strain. ...
std::string _viscoelastic_model_name
Name of the viscoelastic model to update.
const MaterialProperty< RankTwoTensor > & _stress
const MaterialProperty< RankTwoTensor > & _elastic_strain
Name of the elastic strain variable used for the update of the viscoelastic strain.

Member Function Documentation

void LinearViscoelasticityManager::execute ( )
overrideprotectedvirtual

Definition at line 45 of file LinearViscoelasticityManager.C.

46 {
47  if (_mi_feproblem.getCurrentExecuteOnFlag() == EXEC_TIMESTEP_BEGIN)
48  {
49  for (unsigned int _qp = 0; _qp < _qrule->n_points(); ++_qp)
50  _viscoelastic_model->recomputeQpApparentProperties(_qp);
51  }
52 }
std::shared_ptr< LinearViscoelasticityBase > _viscoelastic_model
Pointer to the viscoelastic model to update.
virtual void LinearViscoelasticityManager::finalize ( )
inlineoverrideprotectedvirtual

Definition at line 40 of file LinearViscoelasticityManager.h.

40 {};
void LinearViscoelasticityManager::initialize ( )
overrideprotectedvirtual

Definition at line 55 of file LinearViscoelasticityManager.C.

56 {
57  std::shared_ptr<Material> test =
58  _mi_feproblem.getMaterial(_viscoelastic_model_name, _material_data_type, _mi_tid, true);
59 
60  if (!test)
61  mooseError(_viscoelastic_model_name + " does not exist");
62 
63  _viscoelastic_model = std::dynamic_pointer_cast<LinearViscoelasticityBase>(test);
64 
66  mooseError(_viscoelastic_model_name + " is not a LinearViscoelasticityBase object");
67 }
std::shared_ptr< LinearViscoelasticityBase > _viscoelastic_model
Pointer to the viscoelastic model to update.
std::string _viscoelastic_model_name
Name of the viscoelastic model to update.
This class is a base class for materials consisting of an assembly of linear springs and dashpots...
virtual void LinearViscoelasticityManager::threadJoin ( const UserObject &  )
inlineoverrideprotectedvirtual

Definition at line 39 of file LinearViscoelasticityManager.h.

39 {};

Member Data Documentation

const MaterialProperty<RankTwoTensor>& LinearViscoelasticityManager::_creep_strain
protected

Name of the creep strain variable used for the update of the viscoelastic strain.

Definition at line 51 of file LinearViscoelasticityManager.h.

std::string LinearViscoelasticityManager::_creep_strain_name
protected

Definition at line 49 of file LinearViscoelasticityManager.h.

const MaterialProperty<RankTwoTensor>& LinearViscoelasticityManager::_elastic_strain
protected

Name of the elastic strain variable used for the update of the viscoelastic strain.

Definition at line 55 of file LinearViscoelasticityManager.h.

std::string LinearViscoelasticityManager::_elastic_strain_name
protected

Definition at line 53 of file LinearViscoelasticityManager.h.

const MaterialProperty<RankTwoTensor>& LinearViscoelasticityManager::_stress
protected

Definition at line 47 of file LinearViscoelasticityManager.h.

std::string LinearViscoelasticityManager::_stress_name
protected

Definition at line 40 of file LinearViscoelasticityManager.h.

Referenced by finalize().

std::shared_ptr<LinearViscoelasticityBase> LinearViscoelasticityManager::_viscoelastic_model
protected

Pointer to the viscoelastic model to update.

Definition at line 60 of file LinearViscoelasticityManager.h.

Referenced by execute(), and initialize().

std::string LinearViscoelasticityManager::_viscoelastic_model_name
protected

Name of the viscoelastic model to update.

Definition at line 58 of file LinearViscoelasticityManager.h.

Referenced by initialize().


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