8#ifndef model_MicrostructureContainer_cpp_
9#define model_MicrostructureContainer_cpp_
46 const auto t0= std::chrono::system_clock::now();
47 std::cout<<
"Initializing "<<pair->tag<<
":"<<std::flush;
48 pair->initializeConfiguration(configIO,f_file,F_labels);
58 const auto t0= std::chrono::system_clock::now();
59 std::cout<<
"Solving "<<pair->tag<<
":"<<std::flush;
70 const auto t0= std::chrono::system_clock::now();
71 std::cout<<
"re-Solving "<<pair->tag<<
":"<<std::flush;
80 const auto t0= std::chrono::system_clock::now();
81 double dt(
ddBase.simulationParameters.dtMax);
84 std::cout<<pair->tag<<
":"<<std::flush;
85 const double pairDt(pair->getDt());
86 std::cout<<
" dt="<<pairDt<<std::endl;
87 dt=std::min(dt,pairDt);
89 std::cout<<
"Used dt="<<dt;
99 pair->output(configIO,auxIO,f_file,F_labels);
108 const auto t0= std::chrono::system_clock::now();
109 std::cout<<
"Updating "<<pair->tag<<
":"<<std::flush;
110 pair->updateConfiguration();
121 temp += pair->averagePlasticDistortion();
132 temp += pair->averagePlasticDistortionRate();
143 temp += pair->displacement(
x,node,ele,guess);
154 temp += pair->stress(
x,node,ele,guess);
165 temp += pair->averageStress();
176 temp += pair->inelasticDisplacementRate(
x,node,ele,guess);
187 temp += pair->mobileConcentration(
x,node,ele,guess);
198 temp += pair->immobileClusters(
x,node,ele,guess);
size_t InstanceCount< Derived >::count
static std::string greenColor
static std::string defaultColor
MicrostructureBase(const std::string &tag_in, MicrostructureContainer< dim > &m_in)
MicrostructureBase< dim >::ElementType ElementType
VectorMSize mobileConcentration(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
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
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
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