8#ifndef model_MicrostructureContainer_H_
9#define model_MicrostructureContainer_H_
23 ,
public std::vector<std::shared_ptr<MicrostructureBase<dim>>>
69 template<
typename MicrostructureType>
72 std::set<std::shared_ptr<MicrostructureType>>
temp;
75 std::shared_ptr<MicrostructureType> derived(std::dynamic_pointer_cast<MicrostructureType>(microstructure));
99 template<
typename MicrostructureType>
103 if(cdMicrostructures.size()==1)
105 return *cdMicrostructures.begin();
109 std::cout<<
"Found "<<cdMicrostructures.size()<<
" microstructures of requested type"<<std::endl;
Eigen::Matrix< double, mSize, 1 > VectorMSize
Eigen::Matrix< double, dim, dim > MatrixDim
ElementType::NodeType NodeType
MicrostructureBase(const std::string &tag_in, MicrostructureContainer< dim > &m_in)
Eigen::Matrix< double, dim, 1 > VectorDim
DefectiveCrystalBase< dim >::ElementType ElementType
Eigen::Matrix< double, iSize, 1 > VectorISize
Simplex< dim, dim > SimplexDim
MicrostructureBase< dim >::ElementType ElementType
VectorMSize mobileConcentration(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
std::shared_ptr< MicrostructureType > getUniqueTypedMicrostructure() const
MicrostructureBase< dim >::NodeType NodeType
MatrixDim averagePlasticDistortionRate() const override
MicrostructureBase< dim >::VectorDim VectorDim
MicrostructureBase< dim >::MatrixDim MatrixDim
void initializeConfiguration(const DefectiveCrystalConfigIO< dim > &configIO, const std::ofstream &f_file, const std::ofstream &F_labels) override
MatrixDim stress(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
DefectiveCrystalBase< dim > & ddBase
BaseContainerType & microstructures()
VectorDim inelasticDisplacementRate(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
std::vector< std::shared_ptr< MicrostructureBase< dim > > > BaseContainerType
VectorISize immobileClusters(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
MicrostructureBase< dim >::VectorISize VectorISize
std::set< std::shared_ptr< MicrostructureType > > getTypedMicrostructures() const
VectorDim displacement(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
const BaseContainerType & microstructures() const
MicrostructureContainer(DefectiveCrystalBase< dim > &ddBase_in)
MicrostructureBase< dim >::SimplexDim SimplexDim
void updateConfiguration() override
MatrixDim averagePlasticDistortion() const override
MatrixDim averageStress() const override
double getDt() const override
MicrostructureBase< dim >::VectorMSize VectorMSize
void output(DefectiveCrystalConfigIO< dim > &configIO, DefectiveCrystalAuxIO< dim > &auxIO, std::ofstream &f_file, std::ofstream &F_labels) const override