10#ifndef model_DISLOCATIONNETWORK_H_
11#define model_DISLOCATIONNETWORK_H_
68#define VerboseDislocationNetwork(N,x) if(verboseDislocationNetwork>=N){std::cout<<x;}
70#define VerboseDislocationNetwork(N,x)
102 constexpr static int NdofXnode=NetworkNodeType::NdofXnode;
113 bool contract(std::shared_ptr<NetworkNodeType> nA,std::shared_ptr<NetworkNodeType> nB);
120 static std::set<int> getSubCyclingSet(
const std::vector<int> &inpVector);
121 std::shared_ptr<InclusionMicrostructure<dim>> _inclusions;
180 const std::shared_ptr<InclusionMicrostructure<dim>>&
inclusions()
const;
TraitsType::VectorDim VectorDim
DislocationNetworkRemesh< dim > networkRemesher
TraitsType::LoopType LoopType
std::vector< std::tuple< double, double, double, double > > networkLengthPerSlipSystem() const
void updateBoundaryNodes(const std::function< void()> &checkpoint={})
const std::set< int > subcyclingBins
void executeSingleGlideStepDiscreteEvents(const long int &runID)
MicrostructureBase< dim >::SimplexDim SimplexDim
const int verboseDislocationNode
bool outputQuadraturePoints
TraitsType::LoopNodeType LoopNodeType
void updateConfiguration() override
TypeTraits< DislocationNetwork< dim > > TraitsType
const std::shared_ptr< InclusionMicrostructure< dim > > & inclusions() const
MicrostructureBase< dim >::VectorMSize VectorMSize
VectorDim displacement(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
TraitsType::LoopLinkType LoopLinkType
TraitsType::NetworkNodeType NetworkNodeType
DislocationNetwork(MicrostructureContainerType &mc)
const Eigen::Matrix< double, Eigen::Dynamic, dim > nodalVelocityConstraints
const bool outputDislocationDensityPerSlipSystem
DislocationJunctionFormation< dim > junctionsMaker
std::map< std::pair< int, int >, double > slipSystemAveragePlasticDistortion() const
bool outputLinkingNumbers
const bool use_velocityFilter
const double velocityReductionFactor
bool outputSegmentPairDistances
MicrostructureBase< dim >::NodeType NodeType
MicrostructureBase< dim >::VectorISize VectorISize
int surfaceNucleationModel
std::tuple< double, double, double, double > networkLength() const
static int verboseDislocationNetwork
bool computeDDinteractions
static constexpr int NdofXnode
std::shared_ptr< DislocationGlideSolverBase< dim > > glideSolver
DefectiveCrystalBase< dim > & ddBase
MatrixDim averagePlasticDistortion() const override
TraitsType::FlowType FlowType
void output(DefectiveCrystalConfigIO< dim > &configIO, DefectiveCrystalAuxIO< dim > &auxIO, std::ofstream &f_file, std::ofstream &F_labels) const override
std::shared_ptr< StochasticForceGenerator > stochasticForceGenerator
bool contract(std::shared_ptr< NetworkNodeType > nA, std::shared_ptr< NetworkNodeType > nB)
void setConfiguration(const DefectiveCrystalConfigIO< dim > &)
MatrixDim stress(const VectorDim &, const NodeType *const, const ElementType *const ele, const SimplexDim *const guess) const override
MatrixDim averagePlasticStrain() const
TraitsType::NetworkLinkType NetworkLinkType
VectorMSize mobileConcentration(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
TraitsType::MatrixDim MatrixDim
MatrixDim averagePlasticStrainRate() const
DDtimeStepper< dim > timeStepper
VectorISize immobileClusters(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
void moveNodes(const double &dt_in)
VectorDim inelasticDisplacementRate(const VectorDim &, const NodeType *const, const ElementType *const, const SimplexDim *const) const override
size_t glideStepsSinceLastClimb
const bool computeElasticEnergyPerLength
MicrostructureContainer< dim > MicrostructureContainerType
TraitsType::VectorLowerDim VectorLowerDim
void storeSingleGlideStepDiscreteEvents(const long int &runID)
TraitsType::LoopNetworkType LoopNetworkType
const bool outputPlasticDistortionPerSlipSystem
DislocationNodeContraction< dim > nodeContractor
MatrixDim averagePlasticDistortionRate() const override
void addConfiguration(const DefectiveCrystalConfigIO< dim > &)
std::set< const LoopNodeType * > danglingBoundaryLoopNodes
DislocationCrossSlip< dim > crossSlipMaker
std::shared_ptr< DislocationClimbSolverBase< dim > > climbSolver
double getDt() const override
MicrostructureBase< dim >::ElementType ElementType
MatrixDim averageStress() const override
void initializeConfiguration(const DefectiveCrystalConfigIO< dim > &configIO, const std::ofstream &f_file, const std::ofstream &F_labels) override
const std::shared_ptr< BaseCrossSlipModel< dim > > crossSlipModel
Class template that handles the nodal remesh of the DislocationNetwork.
DislocationLoopLink< dim > LoopLinkType
DislocationLoopNode< dim > LoopNodeType
RationalLatticeDirectionType FlowType
Eigen::Matrix< double, dim, dim > MatrixDim
DislocationSegment< dim > NetworkLinkType
Eigen::Matrix< double, dim-1, 1 > VectorLowerDim
DislocationNode< dim > NetworkNodeType
DislocationNetwork< dim > LoopNetworkType
DislocationLoop< dim > LoopType
Eigen::Matrix< double, dim, 1 > VectorDim
Eigen::Matrix< double, mSize, 1 > VectorMSize
ElementType::NodeType NodeType
MicrostructureBase(const std::string &tag_in, MicrostructureContainer< dim > &m_in)
DefectiveCrystalBase< dim >::ElementType ElementType
Eigen::Matrix< double, iSize, 1 > VectorISize
Simplex< dim, dim > SimplexDim