Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
model::ElasticDeformation< dim > Struct Template Reference

#include <ElasticDeformation.h>

Inheritance diagram for model::ElasticDeformation< dim >:
Collaboration diagram for model::ElasticDeformation< dim >:

Public Types

typedef MicrostructureBase< dim >::ElementType ElementType
typedef MicrostructureBase< dim >::FiniteElementType FiniteElementType
typedef MicrostructureBase< dim >::SimplexDim SimplexDim
typedef MicrostructureBase< dim >::NodeType NodeType
typedef MicrostructureBase< dim >::VectorMSize VectorMSize
typedef MicrostructureBase< dim >::VectorISize VectorISize
typedef MicrostructureBase< dim >::MatrixDim MatrixDim
typedef MicrostructureBase< dim >::VectorDim VectorDim
typedef MicrostructureContainer< dim > MicrostructureContainerType
typedef UniformController< SymmetricVoigtTraits< dim >::voigtSize > UniformControllerType
using DirectSolverType = Eigen::SparseLU<typename ElasticDeformationFEM<dim>::SparseMatrixType>
using IterativeSolverType = Eigen::BiCGSTAB<typename ElasticDeformationFEM<dim>::SparseMatrixType>
using WeakProblemType = WeakProblem<DirectSolverType,IterativeSolverType>
using FEMControllerType = FEMLoadController<typename ElasticDeformationFEM<dim>::TrialFunctionType>
Public Types inherited from model::MicrostructureBase< dim >
typedef MicrostructureContainer< dim > MicrostructureContainerType
typedef Simplex< dim, dim > SimplexDim
typedef DefectiveCrystalBase< dim >::ElementType ElementType
typedef FiniteElement< ElementType > FiniteElementType
typedef ElementType::NodeType NodeType
typedef Eigen::Matrix< double, dim, dim > MatrixDim
typedef Eigen::Matrix< double, dim, 1 > VectorDim
typedef Eigen::Matrix< double, mSize, 1 > VectorMSize
typedef Eigen::Matrix< double, iSize, 1 > VectorISize

Public Member Functions

 ElasticDeformation (MicrostructureContainerType &mc)
void initializeConfiguration (const DefectiveCrystalConfigIO< dim > &configIO, const std::ofstream &f_file, const std::ofstream &F_labels) override
void solve () override
void reSolve () override
double getDt () const override
void output (DefectiveCrystalConfigIO< dim > &configIO, DefectiveCrystalAuxIO< dim > &auxIO, std::ofstream &f_file, std::ofstream &F_labels) const override
void updateConfiguration () override
MatrixDim averagePlasticDistortion () const override
MatrixDim averagePlasticDistortionRate () const override
VectorDim displacement (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
MatrixDim stress (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
MatrixDim averageStress () const override
VectorDim inelasticDisplacementRate (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
VectorMSize mobileConcentration (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
VectorISize immobileClusters (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
void initializeSolver ()
void updatePeriodicGradient ()
Public Member Functions inherited from model::MicrostructureBase< dim >
 MicrostructureBase (const std::string &tag_in, MicrostructureContainer< dim > &m_in)
virtual ~MicrostructureBase ()=default
double timeSinceLastUpdate () const
std::set< const Grain< dim > * > pointGrains (const VectorDim &x, const NodeType *const node, const ElementType *const ele, const SimplexDim *const guess) const
virtual VectorDim displacement (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const =0
virtual MatrixDim stress (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const =0
virtual VectorDim inelasticDisplacementRate (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const =0
virtual VectorMSize mobileConcentration (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const =0
virtual VectorISize immobileClusters (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const =0
Eigen::Matrix< double, Eigen::Dynamic, dim > displacement (Eigen::Ref< const Eigen::Matrix< double, Eigen::Dynamic, dim > >) const
std::vector< Eigen::Matrix< double, dim, dim > > stress (Eigen::Ref< const Eigen::Matrix< double, Eigen::Dynamic, dim > >) const

Public Attributes

const bool useElasticDeformationFEM
const std::unique_ptr< ElasticDeformationFEM< dim > > elasticDeformationFEM
const std::unique_ptr< UniformControllerType > uniformLoadController
const double inertiaReliefPenaltyFactor
std::shared_ptr< FEMControllerType > femLoadController
std::shared_ptr< WeakProblemType > weakProblemSolver
Eigen::VectorXd zDot
bool solverInitialized
Public Attributes inherited from model::MicrostructureBase< dim >
const std::string tag
MicrostructureContainerType & microstructures
double lastUpdateTime

Additional Inherited Members

Static Public Attributes inherited from model::MicrostructureBase< dim >
static constexpr int mSize =ClusterDynamicsParameters<dim>::mSize
static constexpr int iSize =ClusterDynamicsParameters<dim>::iSize

Detailed Description

template<int dim>
struct model::ElasticDeformation< dim >

Definition at line 27 of file ElasticDeformation.h.

Member Typedef Documentation

◆ DirectSolverType

template<int dim>
using model::ElasticDeformation< dim >::DirectSolverType = Eigen::SparseLU<typename ElasticDeformationFEM<dim>::SparseMatrixType>

Definition at line 40 of file ElasticDeformation.h.

◆ ElementType

template<int dim>
typedef MicrostructureBase<dim>::ElementType model::ElasticDeformation< dim >::ElementType

Definition at line 29 of file ElasticDeformation.h.

◆ FEMControllerType

template<int dim>
using model::ElasticDeformation< dim >::FEMControllerType = FEMLoadController<typename ElasticDeformationFEM<dim>::TrialFunctionType>

Definition at line 48 of file ElasticDeformation.h.

◆ FiniteElementType

template<int dim>
typedef MicrostructureBase<dim>::FiniteElementType model::ElasticDeformation< dim >::FiniteElementType

Definition at line 30 of file ElasticDeformation.h.

◆ IterativeSolverType

template<int dim>
using model::ElasticDeformation< dim >::IterativeSolverType = Eigen::BiCGSTAB<typename ElasticDeformationFEM<dim>::SparseMatrixType>

Definition at line 41 of file ElasticDeformation.h.

◆ MatrixDim

Definition at line 35 of file ElasticDeformation.h.

◆ MicrostructureContainerType

template<int dim>
typedef MicrostructureContainer<dim> model::ElasticDeformation< dim >::MicrostructureContainerType

Definition at line 37 of file ElasticDeformation.h.

◆ NodeType

template<int dim>
typedef MicrostructureBase<dim>::NodeType model::ElasticDeformation< dim >::NodeType

Definition at line 32 of file ElasticDeformation.h.

◆ SimplexDim

template<int dim>
typedef MicrostructureBase<dim>::SimplexDim model::ElasticDeformation< dim >::SimplexDim

Definition at line 31 of file ElasticDeformation.h.

◆ UniformControllerType

template<int dim>
typedef UniformController<SymmetricVoigtTraits<dim>::voigtSize> model::ElasticDeformation< dim >::UniformControllerType

Definition at line 38 of file ElasticDeformation.h.

◆ VectorDim

Definition at line 36 of file ElasticDeformation.h.

◆ VectorISize

template<int dim>
typedef MicrostructureBase<dim>::VectorISize model::ElasticDeformation< dim >::VectorISize

Definition at line 34 of file ElasticDeformation.h.

◆ VectorMSize

template<int dim>
typedef MicrostructureBase<dim>::VectorMSize model::ElasticDeformation< dim >::VectorMSize

Definition at line 33 of file ElasticDeformation.h.

◆ WeakProblemType

template<int dim>
using model::ElasticDeformation< dim >::WeakProblemType = WeakProblem<DirectSolverType,IterativeSolverType>

Definition at line 42 of file ElasticDeformation.h.

Constructor & Destructor Documentation

◆ ElasticDeformation()

template<int dim>
model::ElasticDeformation< dim >::ElasticDeformation ( MicrostructureContainerType & mc)

Definition at line 63 of file ElasticDeformation.cpp.

Member Function Documentation

◆ averagePlasticDistortion()

template<int dim>
ElasticDeformation< dim >::MatrixDim model::ElasticDeformation< dim >::averagePlasticDistortion ( ) const
overridevirtual

Implements model::MicrostructureBase< dim >.

Reimplemented in UniformSource.

Definition at line 280 of file ElasticDeformation.cpp.

◆ averagePlasticDistortionRate()

template<int dim>
ElasticDeformation< dim >::MatrixDim model::ElasticDeformation< dim >::averagePlasticDistortionRate ( ) const
overridevirtual

Implements model::MicrostructureBase< dim >.

Definition at line 286 of file ElasticDeformation.cpp.

◆ averageStress()

template<int dim>
ElasticDeformation< dim >::MatrixDim model::ElasticDeformation< dim >::averageStress ( ) const
overridevirtual

Implements model::MicrostructureBase< dim >.

Definition at line 362 of file ElasticDeformation.cpp.

◆ displacement()

template<int dim>
ElasticDeformation< dim >::VectorDim model::ElasticDeformation< dim >::displacement ( const VectorDim & x,
const NodeType * const node,
const ElementType * const ele,
const SimplexDim * const guess ) const
override

Definition at line 292 of file ElasticDeformation.cpp.

◆ getDt()

template<int dim>
double model::ElasticDeformation< dim >::getDt ( ) const
overridevirtual

Implements model::MicrostructureBase< dim >.

Definition at line 231 of file ElasticDeformation.cpp.

◆ immobileClusters()

template<int dim>
ElasticDeformation< dim >::VectorISize model::ElasticDeformation< dim >::immobileClusters ( const VectorDim & ,
const NodeType * const ,
const ElementType * const ,
const SimplexDim * const  ) const
override

Definition at line 356 of file ElasticDeformation.cpp.

◆ inelasticDisplacementRate()

template<int dim>
ElasticDeformation< dim >::VectorDim model::ElasticDeformation< dim >::inelasticDisplacementRate ( const VectorDim & ,
const NodeType * const ,
const ElementType * const ,
const SimplexDim * const  ) const
override

Definition at line 274 of file ElasticDeformation.cpp.

◆ initializeConfiguration()

template<int dim>
void model::ElasticDeformation< dim >::initializeConfiguration ( const DefectiveCrystalConfigIO< dim > & configIO,
const std::ofstream & f_file,
const std::ofstream & F_labels )
overridevirtual

Implements model::MicrostructureBase< dim >.

Definition at line 100 of file ElasticDeformation.cpp.

◆ initializeSolver()

template<int dim>
void model::ElasticDeformation< dim >::initializeSolver ( )

Definition at line 86 of file ElasticDeformation.cpp.

◆ mobileConcentration()

template<int dim>
ElasticDeformation< dim >::VectorMSize model::ElasticDeformation< dim >::mobileConcentration ( const VectorDim & ,
const NodeType * const ,
const ElementType * const ,
const SimplexDim * const  ) const
override

Definition at line 350 of file ElasticDeformation.cpp.

◆ output()

template<int dim>
void model::ElasticDeformation< dim >::output ( DefectiveCrystalConfigIO< dim > & configIO,
DefectiveCrystalAuxIO< dim > & auxIO,
std::ofstream & f_file,
std::ofstream & F_labels ) const
overridevirtual

Implements model::MicrostructureBase< dim >.

Definition at line 237 of file ElasticDeformation.cpp.

◆ reSolve()

template<int dim>
void model::ElasticDeformation< dim >::reSolve ( )
overridevirtual

Implements model::MicrostructureBase< dim >.

Definition at line 132 of file ElasticDeformation.cpp.

◆ solve()

template<int dim>
void model::ElasticDeformation< dim >::solve ( )
overridevirtual

Implements model::MicrostructureBase< dim >.

Definition at line 151 of file ElasticDeformation.cpp.

◆ stress()

template<int dim>
ElasticDeformation< dim >::MatrixDim model::ElasticDeformation< dim >::stress ( const VectorDim & x,
const NodeType * const node,
const ElementType * const ele,
const SimplexDim * const guess ) const
override

Definition at line 323 of file ElasticDeformation.cpp.

◆ updateConfiguration()

template<int dim>
void model::ElasticDeformation< dim >::updateConfiguration ( )
overridevirtual

Implements model::MicrostructureBase< dim >.

Definition at line 216 of file ElasticDeformation.cpp.

◆ updatePeriodicGradient()

template<int dim>
void model::ElasticDeformation< dim >::updatePeriodicGradient ( )

Definition at line 78 of file ElasticDeformation.cpp.

Member Data Documentation

◆ elasticDeformationFEM

template<int dim>
const std::unique_ptr<ElasticDeformationFEM<dim> > model::ElasticDeformation< dim >::elasticDeformationFEM

Definition at line 45 of file ElasticDeformation.h.

◆ femLoadController

template<int dim>
std::shared_ptr<FEMControllerType> model::ElasticDeformation< dim >::femLoadController

Definition at line 49 of file ElasticDeformation.h.

◆ inertiaReliefPenaltyFactor

template<int dim>
const double model::ElasticDeformation< dim >::inertiaReliefPenaltyFactor

Definition at line 47 of file ElasticDeformation.h.

◆ solverInitialized

template<int dim>
bool model::ElasticDeformation< dim >::solverInitialized

Definition at line 52 of file ElasticDeformation.h.

◆ uniformLoadController

template<int dim>
const std::unique_ptr<UniformControllerType> model::ElasticDeformation< dim >::uniformLoadController

Definition at line 46 of file ElasticDeformation.h.

◆ useElasticDeformationFEM

template<int dim>
const bool model::ElasticDeformation< dim >::useElasticDeformationFEM

Definition at line 44 of file ElasticDeformation.h.

◆ weakProblemSolver

template<int dim>
std::shared_ptr<WeakProblemType> model::ElasticDeformation< dim >::weakProblemSolver

Definition at line 50 of file ElasticDeformation.h.

◆ zDot

template<int dim>
Eigen::VectorXd model::ElasticDeformation< dim >::zDot

Definition at line 51 of file ElasticDeformation.h.


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