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

#include <ClusterDynamicsFEM.h>

Collaboration diagram for model::ClusterDynamicsFEM< dim >:

Classes

struct  Load
struct  MatrixForm

Public Types

typedef MicrostructureBase< dim >::MatrixDim MatrixDim
typedef MicrostructureBase< dim >::VectorDim VectorDim
typedef MicrostructureBase< dim >::ElementType ElementType
typedef MicrostructureBase< dim >::SimplexDim SimplexDim
typedef MicrostructureBase< dim >::NodeType NodeType
typedef MicrostructureBase< dim >::VectorMSize VectorMSize
typedef FiniteElement< ElementType > FiniteElementType
typedef IntegrationDomain< FiniteElementType, 0, dVorder, GaussLegendre > VolumeIntegrationDomainType
typedef TrialFunction< 'm', mSize, FiniteElementType > MobileTrialType
typedef TrialFunction< 'i', iSize, FiniteElementType > ImmobileTrialType
typedef TrialFunction< 'z', dim, FiniteElementType > DiffusiveTrialType
typedef TrialGrad< MobileTrialType > MobileGradType
typedef TrialProd< FluxMatrix< dim >, MobileGradType > MobileFluxType
typedef TrialProd< InvDscaling< dim >, MobileTrialType > MobileTestType
typedef TrialGrad< MobileTestType > MobileTestGradType
typedef BilinearForm< MobileTestGradType, TrialProd< Constant< double, 1, 1 >, MobileFluxType > > MobileBilinearFormType
typedef BilinearWeakForm< MobileBilinearFormType, VolumeIntegrationDomainType > MobileBilinearWeakFormType
typedef TrialFunction< 'd', mSize, FiniteElementType > MobileIncrementTrialType
typedef TrialProd< InvDscaling< dim >, MobileIncrementTrialType > MobileIncrementTestType
typedef TrialGrad< MobileIncrementTestType > MobileIncrementTestGradType
typedef TrialGrad< MobileIncrementTrialType > MobileIncrementGradType
typedef TrialProd< FluxMatrix< dim >, MobileIncrementGradType > MobileIncrementFluxType
typedef BilinearForm< MobileIncrementTestGradType, TrialProd< Constant< double, 1, 1 >, MobileIncrementFluxType > > MobileIncrementBilinearFormType
typedef BilinearWeakForm< MobileIncrementBilinearFormType, VolumeIntegrationDomainType > MobileIncrementBilinearWeakFormType
using SparseMatrixType = Eigen::SparseMatrix<double>
using Problem = WeakProblem<Eigen::SparseLU<SparseMatrixType>,Eigen::BiCGSTAB<SparseMatrixType>>
using ImmobileRateTrialType = TrialFunction<'r',iSize,FiniteElementType>
typedef Eigen::Matrix< double, dim+1, 1 > BaryType

Public Member Functions

Eigen::MatrixXd conservedRows (const bool useImmobileClusters) const
void enforceMobileConstraints ()
 ClusterDynamicsFEM (DefectiveCrystalBase< dim > &ddBase_in, const ClusterDynamicsParameters< dim > &cdp_in)
void solveMobileClusters (const bool hasDiscreteLoops)
void solveImmobileClusters ()
void updateImmobileClusters (const double dt)
void solve (const bool hasDiscreteLoops)
void initializeConfiguration (const DefectiveCrystalConfigIO< dim > &configIO, const std::ofstream &f_file, const std::ofstream &F_labels)
void initializeSolver ()
VectorDim inelasticDisplacementRate (const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const
std::vector< Eigen::Matrix< double, dim, dim > > betaP (const ElementType &ele, const BaryType &bary) const
std::vector< Eigen::Matrix< double, dim, dim > > betaV (const ElementType &ele, const BaryType &bary) const
MatrixDim averageBetaP () const
MatrixDim averageBetaPKernel (const Eigen::Matrix< double, dim, 1 > &a1, const ElementType &ele) const
MatrixDim averageBetaV () const
MatrixDim averageBetaVKernel (const Eigen::Matrix< double, dim, 1 > &a1, const ElementType &ele) const

Public Attributes

const DefectiveCrystalBase< dim > & ddBase
const ClusterDynamicsParameters< dim > & cdp
const std::shared_ptr< InvDscaling< dim > > iDs
const Eigen::Matrix< double, mSize, mSize > invTrD
std::shared_ptr< MobileTrialType > mobileClusters
std::shared_ptr< MobileGradType > mobileGrad
std::shared_ptr< MobileFluxType > mobileFlux
std::shared_ptr< ImmobileTrialType > immobileClusters
const std::map< size_t, std::vector< VectorDim > > sinkNormals
std::shared_ptr< MobileIncrementTrialType > mobileClustersIncrement
VolumeIntegrationDomainType dV
std::shared_ptr< MobileBilinearWeakFormType > mBWF
std::shared_ptr< MobileIncrementBilinearWeakFormType > dmBWF
std::shared_ptr< Problem > mSolver
std::shared_ptr< Problem > rSolver
std::shared_ptr< Problem > iSolver
std::shared_ptr< Load< MobileTrialType > > mobileLoad
std::shared_ptr< Load< MobileIncrementTrialType > > reactionLoad
std::shared_ptr< MatrixForm< MobileIncrementTrialType > > reactionMatrix
std::shared_ptr< ImmobileRateTrialType > immobileRateTrial
SparseMatrixType diffusionMatrix
std::vector< Eigen::Triplet< double > > diffusionTriplets
Eigen::MatrixXd meanRows
bool solverInitialized
const Eigen::VectorXd cascadeGlobalProduction
Eigen::VectorXd immobileClusterRate

Static Public Attributes

static constexpr int dVorder =4
static constexpr int mSize =ClusterDynamicsParameters<dim>::mSize
static constexpr int iSize =ClusterDynamicsParameters<dim>::iSize

Detailed Description

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

Definition at line 68 of file ClusterDynamicsFEM.h.

Member Typedef Documentation

◆ BaryType

template<int dim>
typedef Eigen::Matrix<double,dim+1,1> model::ClusterDynamicsFEM< dim >::BaryType

Definition at line 186 of file ClusterDynamicsFEM.h.

◆ DiffusiveTrialType

template<int dim>
typedef TrialFunction<'z',dim,FiniteElementType> model::ClusterDynamicsFEM< dim >::DiffusiveTrialType

Definition at line 83 of file ClusterDynamicsFEM.h.

◆ ElementType

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

Definition at line 72 of file ClusterDynamicsFEM.h.

◆ FiniteElementType

template<int dim>
typedef FiniteElement<ElementType> model::ClusterDynamicsFEM< dim >::FiniteElementType

Definition at line 76 of file ClusterDynamicsFEM.h.

◆ ImmobileRateTrialType

template<int dim>
using model::ClusterDynamicsFEM< dim >::ImmobileRateTrialType = TrialFunction<'r',iSize,FiniteElementType>

Definition at line 133 of file ClusterDynamicsFEM.h.

◆ ImmobileTrialType

template<int dim>
typedef TrialFunction<'i',iSize,FiniteElementType> model::ClusterDynamicsFEM< dim >::ImmobileTrialType

Definition at line 82 of file ClusterDynamicsFEM.h.

◆ MatrixDim

Definition at line 70 of file ClusterDynamicsFEM.h.

◆ MobileBilinearFormType

template<int dim>
typedef BilinearForm<MobileTestGradType,TrialProd<Constant<double,1,1>,MobileFluxType> > model::ClusterDynamicsFEM< dim >::MobileBilinearFormType

Definition at line 89 of file ClusterDynamicsFEM.h.

◆ MobileBilinearWeakFormType

template<int dim>
typedef BilinearWeakForm<MobileBilinearFormType,VolumeIntegrationDomainType> model::ClusterDynamicsFEM< dim >::MobileBilinearWeakFormType

Definition at line 92 of file ClusterDynamicsFEM.h.

◆ MobileFluxType

template<int dim>
typedef TrialProd<FluxMatrix<dim>,MobileGradType> model::ClusterDynamicsFEM< dim >::MobileFluxType

Definition at line 85 of file ClusterDynamicsFEM.h.

◆ MobileGradType

template<int dim>
typedef TrialGrad<MobileTrialType> model::ClusterDynamicsFEM< dim >::MobileGradType

Definition at line 84 of file ClusterDynamicsFEM.h.

◆ MobileIncrementBilinearFormType

template<int dim>
typedef BilinearForm<MobileIncrementTestGradType,TrialProd<Constant<double,1,1>,MobileIncrementFluxType> > model::ClusterDynamicsFEM< dim >::MobileIncrementBilinearFormType

Definition at line 100 of file ClusterDynamicsFEM.h.

◆ MobileIncrementBilinearWeakFormType

template<int dim>
typedef BilinearWeakForm<MobileIncrementBilinearFormType,VolumeIntegrationDomainType> model::ClusterDynamicsFEM< dim >::MobileIncrementBilinearWeakFormType

Definition at line 101 of file ClusterDynamicsFEM.h.

◆ MobileIncrementFluxType

template<int dim>
typedef TrialProd<FluxMatrix<dim>,MobileIncrementGradType> model::ClusterDynamicsFEM< dim >::MobileIncrementFluxType

Definition at line 99 of file ClusterDynamicsFEM.h.

◆ MobileIncrementGradType

template<int dim>
typedef TrialGrad<MobileIncrementTrialType> model::ClusterDynamicsFEM< dim >::MobileIncrementGradType

Definition at line 98 of file ClusterDynamicsFEM.h.

◆ MobileIncrementTestGradType

template<int dim>
typedef TrialGrad<MobileIncrementTestType> model::ClusterDynamicsFEM< dim >::MobileIncrementTestGradType

Definition at line 96 of file ClusterDynamicsFEM.h.

◆ MobileIncrementTestType

template<int dim>
typedef TrialProd<InvDscaling<dim>,MobileIncrementTrialType> model::ClusterDynamicsFEM< dim >::MobileIncrementTestType

Definition at line 95 of file ClusterDynamicsFEM.h.

◆ MobileIncrementTrialType

template<int dim>
typedef TrialFunction<'d',mSize,FiniteElementType> model::ClusterDynamicsFEM< dim >::MobileIncrementTrialType

Definition at line 94 of file ClusterDynamicsFEM.h.

◆ MobileTestGradType

template<int dim>
typedef TrialGrad<MobileTestType> model::ClusterDynamicsFEM< dim >::MobileTestGradType

Definition at line 88 of file ClusterDynamicsFEM.h.

◆ MobileTestType

template<int dim>
typedef TrialProd<InvDscaling<dim>,MobileTrialType> model::ClusterDynamicsFEM< dim >::MobileTestType

Definition at line 87 of file ClusterDynamicsFEM.h.

◆ MobileTrialType

template<int dim>
typedef TrialFunction<'m',mSize,FiniteElementType> model::ClusterDynamicsFEM< dim >::MobileTrialType

Definition at line 81 of file ClusterDynamicsFEM.h.

◆ NodeType

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

Definition at line 74 of file ClusterDynamicsFEM.h.

◆ Problem

template<int dim>
using model::ClusterDynamicsFEM< dim >::Problem = WeakProblem<Eigen::SparseLU<SparseMatrixType>,Eigen::BiCGSTAB<SparseMatrixType>>

Definition at line 104 of file ClusterDynamicsFEM.h.

◆ SimplexDim

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

Definition at line 73 of file ClusterDynamicsFEM.h.

◆ SparseMatrixType

template<int dim>
using model::ClusterDynamicsFEM< dim >::SparseMatrixType = Eigen::SparseMatrix<double>

Definition at line 103 of file ClusterDynamicsFEM.h.

◆ VectorDim

Definition at line 71 of file ClusterDynamicsFEM.h.

◆ VectorMSize

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

Definition at line 75 of file ClusterDynamicsFEM.h.

◆ VolumeIntegrationDomainType

template<int dim>
typedef IntegrationDomain<FiniteElementType,0,dVorder,GaussLegendre> model::ClusterDynamicsFEM< dim >::VolumeIntegrationDomainType

Definition at line 78 of file ClusterDynamicsFEM.h.

Constructor & Destructor Documentation

◆ ClusterDynamicsFEM()

template<int dim>
model::ClusterDynamicsFEM< dim >::ClusterDynamicsFEM ( DefectiveCrystalBase< dim > & ddBase_in,
const ClusterDynamicsParameters< dim > & cdp_in )

Definition at line 77 of file ClusterDynamicsFEM.cpp.

Member Function Documentation

◆ averageBetaP()

template<int dim>
ClusterDynamicsFEM< dim >::MatrixDim model::ClusterDynamicsFEM< dim >::averageBetaP ( ) const

Definition at line 598 of file ClusterDynamicsFEM.cpp.

◆ averageBetaPKernel()

template<int dim>
ClusterDynamicsFEM< dim >::MatrixDim model::ClusterDynamicsFEM< dim >::averageBetaPKernel ( const Eigen::Matrix< double, dim, 1 > & a1,
const ElementType & ele ) const

Definition at line 584 of file ClusterDynamicsFEM.cpp.

◆ averageBetaV()

template<int dim>
ClusterDynamicsFEM< dim >::MatrixDim model::ClusterDynamicsFEM< dim >::averageBetaV ( ) const

Definition at line 625 of file ClusterDynamicsFEM.cpp.

◆ averageBetaVKernel()

template<int dim>
ClusterDynamicsFEM< dim >::MatrixDim model::ClusterDynamicsFEM< dim >::averageBetaVKernel ( const Eigen::Matrix< double, dim, 1 > & a1,
const ElementType & ele ) const

Definition at line 611 of file ClusterDynamicsFEM.cpp.

◆ betaP()

template<int dim>
std::vector< Eigen::Matrix< double, dim, dim > > model::ClusterDynamicsFEM< dim >::betaP ( const ElementType & ele,
const BaryType & bary ) const

Definition at line 506 of file ClusterDynamicsFEM.cpp.

◆ betaV()

template<int dim>
std::vector< Eigen::Matrix< double, dim, dim > > model::ClusterDynamicsFEM< dim >::betaV ( const ElementType & ele,
const BaryType & bary ) const

Definition at line 540 of file ClusterDynamicsFEM.cpp.

◆ conservedRows()

template<int dim>
Eigen::MatrixXd model::ClusterDynamicsFEM< dim >::conservedRows ( const bool useImmobileClusters) const

Definition at line 139 of file ClusterDynamicsFEM.cpp.

◆ enforceMobileConstraints()

template<int dim>
void model::ClusterDynamicsFEM< dim >::enforceMobileConstraints ( )

Definition at line 105 of file ClusterDynamicsFEM.cpp.

◆ inelasticDisplacementRate()

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

Definition at line 477 of file ClusterDynamicsFEM.cpp.

◆ initializeConfiguration()

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

Definition at line 446 of file ClusterDynamicsFEM.cpp.

◆ initializeSolver()

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

Definition at line 413 of file ClusterDynamicsFEM.cpp.

◆ solve()

template<int dim>
void model::ClusterDynamicsFEM< dim >::solve ( const bool hasDiscreteLoops)

Definition at line 384 of file ClusterDynamicsFEM.cpp.

◆ solveImmobileClusters()

template<int dim>
void model::ClusterDynamicsFEM< dim >::solveImmobileClusters ( )

Definition at line 333 of file ClusterDynamicsFEM.cpp.

◆ solveMobileClusters()

template<int dim>
void model::ClusterDynamicsFEM< dim >::solveMobileClusters ( const bool hasDiscreteLoops)

Definition at line 205 of file ClusterDynamicsFEM.cpp.

◆ updateImmobileClusters()

template<int dim>
void model::ClusterDynamicsFEM< dim >::updateImmobileClusters ( const double dt)

Definition at line 356 of file ClusterDynamicsFEM.cpp.

Member Data Documentation

◆ cascadeGlobalProduction

template<int dim>
const Eigen::VectorXd model::ClusterDynamicsFEM< dim >::cascadeGlobalProduction

Definition at line 163 of file ClusterDynamicsFEM.h.

◆ cdp

template<int dim>
const ClusterDynamicsParameters<dim>& model::ClusterDynamicsFEM< dim >::cdp

Definition at line 135 of file ClusterDynamicsFEM.h.

◆ ddBase

template<int dim>
const DefectiveCrystalBase<dim>& model::ClusterDynamicsFEM< dim >::ddBase

Definition at line 134 of file ClusterDynamicsFEM.h.

◆ diffusionMatrix

template<int dim>
SparseMatrixType model::ClusterDynamicsFEM< dim >::diffusionMatrix

Definition at line 156 of file ClusterDynamicsFEM.h.

◆ diffusionTriplets

template<int dim>
std::vector<Eigen::Triplet<double> > model::ClusterDynamicsFEM< dim >::diffusionTriplets

Definition at line 157 of file ClusterDynamicsFEM.h.

◆ dmBWF

template<int dim>
std::shared_ptr<MobileIncrementBilinearWeakFormType> model::ClusterDynamicsFEM< dim >::dmBWF

Definition at line 149 of file ClusterDynamicsFEM.h.

◆ dV

Definition at line 147 of file ClusterDynamicsFEM.h.

◆ dVorder

template<int dim>
int model::ClusterDynamicsFEM< dim >::dVorder =4
staticconstexpr

Definition at line 77 of file ClusterDynamicsFEM.h.

◆ iDs

template<int dim>
const std::shared_ptr<InvDscaling<dim> > model::ClusterDynamicsFEM< dim >::iDs

Definition at line 136 of file ClusterDynamicsFEM.h.

◆ immobileClusterRate

template<int dim>
Eigen::VectorXd model::ClusterDynamicsFEM< dim >::immobileClusterRate

Definition at line 164 of file ClusterDynamicsFEM.h.

◆ immobileClusters

template<int dim>
std::shared_ptr<ImmobileTrialType> model::ClusterDynamicsFEM< dim >::immobileClusters

Definition at line 143 of file ClusterDynamicsFEM.h.

◆ immobileRateTrial

template<int dim>
std::shared_ptr<ImmobileRateTrialType> model::ClusterDynamicsFEM< dim >::immobileRateTrial

Definition at line 155 of file ClusterDynamicsFEM.h.

◆ invTrD

template<int dim>
const Eigen::Matrix<double,mSize,mSize> model::ClusterDynamicsFEM< dim >::invTrD

Definition at line 138 of file ClusterDynamicsFEM.h.

◆ iSize

template<int dim>
int model::ClusterDynamicsFEM< dim >::iSize =ClusterDynamicsParameters<dim>::iSize
staticconstexpr

Definition at line 80 of file ClusterDynamicsFEM.h.

◆ iSolver

template<int dim>
std::shared_ptr<Problem> model::ClusterDynamicsFEM< dim >::iSolver

Definition at line 151 of file ClusterDynamicsFEM.h.

◆ mBWF

template<int dim>
std::shared_ptr<MobileBilinearWeakFormType> model::ClusterDynamicsFEM< dim >::mBWF

Definition at line 148 of file ClusterDynamicsFEM.h.

◆ meanRows

template<int dim>
Eigen::MatrixXd model::ClusterDynamicsFEM< dim >::meanRows

Definition at line 158 of file ClusterDynamicsFEM.h.

◆ mobileClusters

template<int dim>
std::shared_ptr<MobileTrialType> model::ClusterDynamicsFEM< dim >::mobileClusters

Definition at line 140 of file ClusterDynamicsFEM.h.

◆ mobileClustersIncrement

template<int dim>
std::shared_ptr<MobileIncrementTrialType> model::ClusterDynamicsFEM< dim >::mobileClustersIncrement

Definition at line 146 of file ClusterDynamicsFEM.h.

◆ mobileFlux

template<int dim>
std::shared_ptr<MobileFluxType> model::ClusterDynamicsFEM< dim >::mobileFlux

Definition at line 142 of file ClusterDynamicsFEM.h.

◆ mobileGrad

template<int dim>
std::shared_ptr<MobileGradType> model::ClusterDynamicsFEM< dim >::mobileGrad

Definition at line 141 of file ClusterDynamicsFEM.h.

◆ mobileLoad

template<int dim>
std::shared_ptr<Load<MobileTrialType> > model::ClusterDynamicsFEM< dim >::mobileLoad

Definition at line 152 of file ClusterDynamicsFEM.h.

◆ mSize

template<int dim>
int model::ClusterDynamicsFEM< dim >::mSize =ClusterDynamicsParameters<dim>::mSize
staticconstexpr

Definition at line 79 of file ClusterDynamicsFEM.h.

◆ mSolver

template<int dim>
std::shared_ptr<Problem> model::ClusterDynamicsFEM< dim >::mSolver

Definition at line 151 of file ClusterDynamicsFEM.h.

◆ reactionLoad

template<int dim>
std::shared_ptr<Load<MobileIncrementTrialType> > model::ClusterDynamicsFEM< dim >::reactionLoad

Definition at line 153 of file ClusterDynamicsFEM.h.

◆ reactionMatrix

template<int dim>
std::shared_ptr<MatrixForm<MobileIncrementTrialType> > model::ClusterDynamicsFEM< dim >::reactionMatrix

Definition at line 154 of file ClusterDynamicsFEM.h.

◆ rSolver

template<int dim>
std::shared_ptr<Problem> model::ClusterDynamicsFEM< dim >::rSolver

Definition at line 151 of file ClusterDynamicsFEM.h.

◆ sinkNormals

template<int dim>
const std::map<size_t,std::vector<VectorDim> > model::ClusterDynamicsFEM< dim >::sinkNormals

Definition at line 145 of file ClusterDynamicsFEM.h.

◆ solverInitialized

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

Definition at line 161 of file ClusterDynamicsFEM.h.


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