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

#include <DislocationSegment.h>

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

Public Types

typedef TypeTraits< DislocationSegment< dim > > TraitsType
typedef TraitsType::LoopNetworkType LoopNetworkType
typedef TraitsType::LoopType LoopType
typedef TraitsType::LoopNodeType LoopNodeType
typedef TraitsType::LoopLinkType LoopLinkType
typedef TraitsType::NetworkNodeType NetworkNodeType
typedef TraitsType::NetworkLinkType NetworkLinkType
typedef TraitsType::FlowType FlowType
typedef TraitsType::VectorDim VectorDim
typedef TraitsType::MatrixDim MatrixDim
typedef TraitsType::MeshLocation MeshLocation
typedef SplineSegment< dim, 0 > SplineSegmentType
typedef SplineSegmentType::VectorNdof VectorNdof
typedef SplineSegmentType::MatrixNdof MatrixNdof
typedef SplineSegmentType::VectorNcoeff VectorNcoeff
typedef Grain< dim > GrainType
typedef std::set< const GrainType * > GrainContainerType
typedef GlidePlane< dim > GlidePlaneType
typedef std::set< const GlidePlaneType * > GlidePlaneContainerType
typedef Polyhedron< dim, dim-1 > PlanarMeshFaceType
typedef std::set< const PlanarMeshFaceType * > PlanarMeshFaceContainerType
typedef DislocationQuadraturePoint< dim >::QuadratureDynamicType QuadratureDynamicType
typedef Eigen::Matrix< double, mSize, 2 > ConcentrationMatrixType
typedef Eigen::Matrix< double, mSize, 1 > ConcentrationVectorType
Public Types inherited from model::NetworkBase< DislocationSegment< dim >, std::pair< size_t, size_t > >
typedef std::pair< size_t, size_t > KeyType
Public Types inherited from model::SplineSegment< dim, 0 >
typedef Eigen::Matrix< double, 1, Ncoeff > RowNcoeff
typedef Eigen::Matrix< double, 1, Ncoeff-1 > RowNcoeffu
typedef Eigen::Matrix< double, 1, Ncoeff-2 > RowNcoeffuu
typedef Eigen::Matrix< double, Ncoeff, Ncoeff > MatrixNcoeff
typedef Eigen::Matrix< double, Ncoeff, dim > MatrixNcoeffDim
typedef Eigen::Matrix< double, Ndof, 1 > VectorNdof
typedef Eigen::Matrix< double, dim, dim > MatrixDim
typedef Eigen::Matrix< double, dim, 1 > VectorDim
typedef Eigen::Matrix< double, dim, Ndof > MatrixDimNdof
typedef Eigen::Matrix< double, Ncoeff, 1 > VectorNcoeff
typedef Eigen::Matrix< double, Ndof, Ndof > MatrixNdof
typedef SplineSegmentBase< dim, corder > SplineSegmentBaseType
typedef ParametricCurve< SplineSegment< _dim, corder >, dim > ParametricCurveType

Public Member Functions

 DislocationSegment (LoopNetworkType *const net, const std::shared_ptr< NetworkNodeType > &, const std::shared_ptr< NetworkNodeType > &)
void addLoopLink (LoopLinkType *const pL)
void removeLoopLink (LoopLinkType *const pL)
void updateSlipSystem ()
MeshLocation meshLocation () const
bool isBoundarySegment () const
bool isGrainBoundarySegment () const
void updateGeometry ()
const std::shared_ptr< SlipSystem > & slipSystem () const
bool hasZeroBurgers () const
bool isGlissile () const
bool isSessile () const
const VectorDim & burgers () const
const VectorDim & glidePlaneNormal () const
void addToGlobalAssembly (std::deque< Eigen::Triplet< double > > &kqqT, Eigen::VectorXd &FQ) const
void addToGlobalAssembly (std::deque< Eigen::Triplet< double > > &kqqT, Eigen::VectorXd &FQ, const size_t sourceIndex, const size_t sinkIndex) const
void createQuadraturePoints (const bool &isClimbStep)
void updateQuadraturePoints (const bool &isClimbStep)
int velocityGroup (const double &maxVelocity, const std::set< int > &subcyclingBins) const
GlidePlaneContainerType glidePlanes () const
PlanarMeshFaceContainerType meshFaces () const
bool isOnExternalBoundary () const
bool isOnInternalBoundary () const
bool isOnBoundary () const
VectorDim bndNormal () const
GrainContainerType grains () const
std::vector< std::pair< const GlidePlane< dim > *const, const GlidePlane< dim > *const > > parallelAndCoincidentGlidePlanes (const GlidePlaneContainerType &other) const
VectorDim snapToGlidePlanes (const VectorDim &P) const
VectorDim climbDirection () const
ConcentrationMatrixType concentrationMatrices (const VectorDim &x, const ClusterDynamicsParameters< dim > &icp) const
ConcentrationVectorType clusterConcentration (const VectorDim &x, const ClusterDynamicsParameters< dim > &icp) const
Public Member Functions inherited from model::StaticID< DislocationSegment< dim > >
 StaticID ()
Public Member Functions inherited from model::CRTP< DislocationSegment< dim > >
 CRTP ()
 The default constructor.
Public Member Functions inherited from model::NetworkBase< DislocationSegment< dim >, std::pair< size_t, size_t > >
 NetworkBase (const NetworkBase< LoopNetworkType, KeyType > &)=delete
NetworkBase & operator= (const NetworkBase< LoopNetworkType, KeyType > &other)=delete
 ~NetworkBase ()
const LoopNetworkType & network () const
LoopNetworkType * p_network () const
size_t networkID () const
Public Member Functions inherited from model::SplineSegment< dim, 0 >
 SplineSegment (const VectorDim &sourceP_in, const VectorDim &sinkP_in)
void updateGeometry ()
MatrixNcoeffDim hermiteDofs () const
std::pair< Eigen::Matrix< double, Ncoeff, Eigen::Dynamic >, Eigen::Matrix< double, Eigen::Dynamic, dim > > hermite2posMatrix () const
SplineSegmentBaseType::H2PmapType hermite2posMap () const
Eigen::Matrix< double, dim, Ncoeff > hermiteCoefficients () const
Eigen::Matrix< double, dim, Ncoeff > polynomialCoeff () const
MatrixNcoeff sfCoeffs () const
const VectorDim & chord () const
const double & chordLength () const
const double & chordLengthSquared () const
const VectorDim & unitDirection () const
double parametricChordLength () const
VectorDim get_r (const double &u) const
RowNcoeff sf (const double &u) const
VectorDim get_ru (const double &uin) const
VectorDim get_rmu (const double &uin) const
VectorDim get_ruu (const double &uin) const
VectorDim get_rmumu (const double &uin) const
std::pair< double, std::pair< double, VectorDim > > closestPoint (const VectorDim &P0) const
Public Member Functions inherited from model::ParametricCurve< SplineSegment< _dim, corder >, _dim >
double get_j (const double &u) const
double get_jSquare (const double &u) const
VectorDim get_rl (const double &u) const
double get_ju (const double &u) const
VectorDim get_rll (const double &u) const
double get_kappa (const double &u) const
 the scalar curvature
double arcLength () const
VectorDim rm () const
VectorDim rm_integrand (const double &u) const
Public Member Functions inherited from model::DislocationQuadraturePointContainer< dim >
void update (const LinkType &parentSegment, const bool &isClimbStep)
void create (const LinkType &parentSegment, const double &quadPerLength, const bool &isClimbStep)
const DislocationQuadraturePointContainerType & quadraturePoints () const
DislocationQuadraturePointContainerType & quadraturePoints ()
const DislocationQuadraturePointType & quadraturePoint (const int &k) const
VectorNdof nodalVelocityVector (const LinkType &parentSegment) const
MatrixNdof nodalVelocityMatrix (const LinkType &parentSegment) const
VectorDim glideVelocityIntegral () const
VectorDim pkIntegral () const
MatrixDim stressIntegral () const

Static Public Member Functions

static void initFromFile (const std::string &)
Static Public Member Functions inherited from model::StaticID< DislocationSegment< dim > >
static size_t nextID ()
static size_t & get_count ()
static void set_count (const size_t &newCount)
static void force_count (const size_t &newCount)
static void set_increment (const size_t &newIncrement)

Public Attributes

VectorDim Burgers
double BurgersNorm
 The Burgers vector.
StraightDislocationSegment< dim > straight
std::shared_ptr< SlipSystem > _slipSystem
Public Attributes inherited from model::StaticID< DislocationSegment< dim > >
const size_t sID
 The static ID of this.
Public Attributes inherited from model::NetworkBase< DislocationSegment< dim >, std::pair< size_t, size_t > >
const KeyType key
Public Attributes inherited from model::SplineSegment< dim, 0 >
const VectorDim & sourceP
const VectorDim & sinkP

Static Public Attributes

static constexpr int Ndof = SplineSegmentType::Ndof
static constexpr int Ncoeff = SplineSegmentType::Ncoeff
static constexpr int mSize =ClusterDynamicsParameters<dim>::mSize
static const VectorDim zeroVector
static double quadPerLength
static int verboseDislocationSegment
Static Public Attributes inherited from model::SplineSegment< dim, 0 >
static constexpr int dim
static constexpr int Ncoeff
static constexpr int pOrder
static constexpr int Ndof
static constexpr int eigenSize
static double alpha

Additional Inherited Members

Protected Member Functions inherited from model::CRTP< DislocationSegment< dim > >
DislocationSegment< dim > & derived ()
 A reference to the derived object.
DislocationSegment< dim > * p_derived ()
 A pointer to the derived object.

Detailed Description

template<int dim>
class model::DislocationSegment< dim >

Definition at line 31 of file DislocationSegment.h.

Member Typedef Documentation

◆ ConcentrationMatrixType

template<int dim>
typedef Eigen::Matrix<double,mSize,2> model::DislocationSegment< dim >::ConcentrationMatrixType

Definition at line 66 of file DislocationSegment.h.

◆ ConcentrationVectorType

template<int dim>
typedef Eigen::Matrix<double,mSize,1> model::DislocationSegment< dim >::ConcentrationVectorType

Definition at line 67 of file DislocationSegment.h.

◆ FlowType

template<int dim>
typedef TraitsType::FlowType model::DislocationSegment< dim >::FlowType

Definition at line 45 of file DislocationSegment.h.

◆ GlidePlaneContainerType

template<int dim>
typedef std::set<const GlidePlaneType *> model::DislocationSegment< dim >::GlidePlaneContainerType

Definition at line 59 of file DislocationSegment.h.

◆ GlidePlaneType

Definition at line 58 of file DislocationSegment.h.

◆ GrainContainerType

template<int dim>
typedef std::set<const GrainType *> model::DislocationSegment< dim >::GrainContainerType

Definition at line 57 of file DislocationSegment.h.

◆ GrainType

template<int dim>
typedef Grain<dim> model::DislocationSegment< dim >::GrainType

Definition at line 56 of file DislocationSegment.h.

◆ LoopLinkType

template<int dim>
typedef TraitsType::LoopLinkType model::DislocationSegment< dim >::LoopLinkType

Definition at line 42 of file DislocationSegment.h.

◆ LoopNetworkType

template<int dim>
typedef TraitsType::LoopNetworkType model::DislocationSegment< dim >::LoopNetworkType

Definition at line 39 of file DislocationSegment.h.

◆ LoopNodeType

Definition at line 41 of file DislocationSegment.h.

◆ LoopType

Definition at line 40 of file DislocationSegment.h.

◆ MatrixDim

Definition at line 47 of file DislocationSegment.h.

◆ MatrixNdof

template<int dim>
typedef SplineSegmentType::MatrixNdof model::DislocationSegment< dim >::MatrixNdof

Definition at line 52 of file DislocationSegment.h.

◆ MeshLocation

template<int dim>
typedef TraitsType::MeshLocation model::DislocationSegment< dim >::MeshLocation

Definition at line 48 of file DislocationSegment.h.

◆ NetworkLinkType

template<int dim>
typedef TraitsType::NetworkLinkType model::DislocationSegment< dim >::NetworkLinkType

Definition at line 44 of file DislocationSegment.h.

◆ NetworkNodeType

Definition at line 43 of file DislocationSegment.h.

◆ PlanarMeshFaceContainerType

template<int dim>
typedef std::set<const PlanarMeshFaceType *> model::DislocationSegment< dim >::PlanarMeshFaceContainerType

Definition at line 61 of file DislocationSegment.h.

◆ PlanarMeshFaceType

template<int dim>
typedef Polyhedron<dim,dim-1> model::DislocationSegment< dim >::PlanarMeshFaceType

Definition at line 60 of file DislocationSegment.h.

◆ QuadratureDynamicType

template<int dim>
typedef DislocationQuadraturePoint<dim>::QuadratureDynamicType model::DislocationSegment< dim >::QuadratureDynamicType

Definition at line 62 of file DislocationSegment.h.

◆ SplineSegmentType

template<int dim>
typedef SplineSegment<dim,0> model::DislocationSegment< dim >::SplineSegmentType

Definition at line 50 of file DislocationSegment.h.

◆ TraitsType

template<int dim>
typedef TypeTraits<DislocationSegment<dim> > model::DislocationSegment< dim >::TraitsType

Definition at line 38 of file DislocationSegment.h.

◆ VectorDim

Definition at line 46 of file DislocationSegment.h.

◆ VectorNcoeff

template<int dim>
typedef SplineSegmentType::VectorNcoeff model::DislocationSegment< dim >::VectorNcoeff

Definition at line 53 of file DislocationSegment.h.

◆ VectorNdof

template<int dim>
typedef SplineSegmentType::VectorNdof model::DislocationSegment< dim >::VectorNdof

Definition at line 51 of file DislocationSegment.h.

Constructor & Destructor Documentation

◆ DislocationSegment()

template<int dim>
model::DislocationSegment< dim >::DislocationSegment ( LoopNetworkType *const net,
const std::shared_ptr< NetworkNodeType > & nI,
const std::shared_ptr< NetworkNodeType > & nJ )

Definition at line 18 of file DislocationSegment.cpp.

Member Function Documentation

◆ addLoopLink()

template<int dim>
void model::DislocationSegment< dim >::addLoopLink ( LoopLinkType *const pL)

Definition at line 144 of file DislocationSegment.cpp.

◆ addToGlobalAssembly() [1/2]

template<int dim>
void model::DislocationSegment< dim >::addToGlobalAssembly ( std::deque< Eigen::Triplet< double > > & kqqT,
Eigen::VectorXd & FQ ) const

Definition at line 325 of file DislocationSegment.cpp.

◆ addToGlobalAssembly() [2/2]

template<int dim>
void model::DislocationSegment< dim >::addToGlobalAssembly ( std::deque< Eigen::Triplet< double > > & kqqT,
Eigen::VectorXd & FQ,
const size_t sourceIndex,
const size_t sinkIndex ) const
Parameters
[in]kqqTthe stiffness matrix of the network component
[in]FQthe force vector of the network component

Definition at line 335 of file DislocationSegment.cpp.

◆ bndNormal()

template<int dim>
DislocationSegment< dim >::VectorDim model::DislocationSegment< dim >::bndNormal ( ) const

Definition at line 542 of file DislocationSegment.cpp.

◆ burgers()

template<int dim>
const DislocationSegment< dim >::VectorDim & model::DislocationSegment< dim >::burgers ( ) const

Definition at line 319 of file DislocationSegment.cpp.

◆ climbDirection()

template<int dim>
DislocationSegment< dim >::VectorDim model::DislocationSegment< dim >::climbDirection ( ) const

Definition at line 33 of file DislocationSegment.cpp.

◆ clusterConcentration()

template<int dim>
DislocationSegment< dim >::ConcentrationVectorType model::DislocationSegment< dim >::clusterConcentration ( const VectorDim & x,
const ClusterDynamicsParameters< dim > & icp ) const

Definition at line 674 of file DislocationSegment.cpp.

◆ concentrationMatrices()

template<int dim>
DislocationSegment< dim >::ConcentrationMatrixType model::DislocationSegment< dim >::concentrationMatrices ( const VectorDim & x,
const ClusterDynamicsParameters< dim > & icp ) const

Definition at line 623 of file DislocationSegment.cpp.

◆ createQuadraturePoints()

template<int dim>
void model::DislocationSegment< dim >::createQuadraturePoints ( const bool & isClimbStep)

Definition at line 409 of file DislocationSegment.cpp.

◆ glidePlaneNormal()

template<int dim>
const DislocationSegment< dim >::VectorDim & model::DislocationSegment< dim >::glidePlaneNormal ( ) const

Definition at line 460 of file DislocationSegment.cpp.

◆ glidePlanes()

template<int dim>
DislocationSegment< dim >::GlidePlaneContainerType model::DislocationSegment< dim >::glidePlanes ( ) const

Definition at line 466 of file DislocationSegment.cpp.

◆ grains()

template<int dim>
DislocationSegment< dim >::GrainContainerType model::DislocationSegment< dim >::grains ( ) const

Definition at line 531 of file DislocationSegment.cpp.

◆ hasZeroBurgers()

template<int dim>
bool model::DislocationSegment< dim >::hasZeroBurgers ( ) const

Definition at line 285 of file DislocationSegment.cpp.

◆ initFromFile()

template<int dim>
void model::DislocationSegment< dim >::initFromFile ( const std::string & fileName)
static

Definition at line 234 of file DislocationSegment.cpp.

◆ isBoundarySegment()

template<int dim>
bool model::DislocationSegment< dim >::isBoundarySegment ( ) const
Returns
true if both nodes are boundary nodes, and the midpoint is on the boundary.

Definition at line 297 of file DislocationSegment.cpp.

◆ isGlissile()

template<int dim>
bool model::DislocationSegment< dim >::isGlissile ( ) const

Definition at line 209 of file DislocationSegment.cpp.

◆ isGrainBoundarySegment()

template<int dim>
bool model::DislocationSegment< dim >::isGrainBoundarySegment ( ) const

Definition at line 305 of file DislocationSegment.cpp.

◆ isOnBoundary()

template<int dim>
bool model::DislocationSegment< dim >::isOnBoundary ( ) const

Definition at line 526 of file DislocationSegment.cpp.

◆ isOnExternalBoundary()

template<int dim>
bool model::DislocationSegment< dim >::isOnExternalBoundary ( ) const
Returns
_isOnExternalBoundarySegment.

Definition at line 496 of file DislocationSegment.cpp.

◆ isOnInternalBoundary()

template<int dim>
bool model::DislocationSegment< dim >::isOnInternalBoundary ( ) const

Definition at line 512 of file DislocationSegment.cpp.

◆ isSessile()

template<int dim>
bool model::DislocationSegment< dim >::isSessile ( ) const

Definition at line 227 of file DislocationSegment.cpp.

◆ meshFaces()

Definition at line 480 of file DislocationSegment.cpp.

◆ meshLocation()

template<int dim>
DislocationSegment< dim >::MeshLocation model::DislocationSegment< dim >::meshLocation ( ) const
Returns
the position of *this relative to the bonudary: 1 = inside mesh 2 = on mesh boundary

Definition at line 246 of file DislocationSegment.cpp.

◆ parallelAndCoincidentGlidePlanes()

template<int dim>
std::vector< std::pair< const GlidePlane< dim > *const, const GlidePlane< dim > *const > > model::DislocationSegment< dim >::parallelAndCoincidentGlidePlanes ( const GlidePlaneContainerType & other) const

Definition at line 562 of file DislocationSegment.cpp.

◆ removeLoopLink()

template<int dim>
void model::DislocationSegment< dim >::removeLoopLink ( LoopLinkType *const pL)

Definition at line 178 of file DislocationSegment.cpp.

◆ slipSystem()

template<int dim>
const std::shared_ptr< SlipSystem > & model::DislocationSegment< dim >::slipSystem ( ) const

Definition at line 291 of file DislocationSegment.cpp.

◆ snapToGlidePlanes()

template<int dim>
DislocationSegment< dim >::VectorDim model::DislocationSegment< dim >::snapToGlidePlanes ( const VectorDim & P) const

Definition at line 585 of file DislocationSegment.cpp.

◆ updateGeometry()

template<int dim>
void model::DislocationSegment< dim >::updateGeometry ( )

Definition at line 199 of file DislocationSegment.cpp.

◆ updateQuadraturePoints()

template<int dim>
void model::DislocationSegment< dim >::updateQuadraturePoints ( const bool & isClimbStep)

Definition at line 415 of file DislocationSegment.cpp.

◆ updateSlipSystem()

template<int dim>
void model::DislocationSegment< dim >::updateSlipSystem ( )

Definition at line 49 of file DislocationSegment.cpp.

◆ velocityGroup()

template<int dim>
int model::DislocationSegment< dim >::velocityGroup ( const double & maxVelocity,
const std::set< int > & subcyclingBins ) const

Definition at line 421 of file DislocationSegment.cpp.

Member Data Documentation

◆ _slipSystem

template<int dim>
std::shared_ptr<SlipSystem> model::DislocationSegment< dim >::_slipSystem

Definition at line 79 of file DislocationSegment.h.

◆ Burgers

template<int dim>
VectorDim model::DislocationSegment< dim >::Burgers

Definition at line 76 of file DislocationSegment.h.

◆ BurgersNorm

template<int dim>
double model::DislocationSegment< dim >::BurgersNorm

The Burgers vector.

Definition at line 77 of file DislocationSegment.h.

◆ mSize

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

Definition at line 65 of file DislocationSegment.h.

◆ Ncoeff

template<int dim>
int model::DislocationSegment< dim >::Ncoeff = SplineSegmentType::Ncoeff
staticconstexpr

Definition at line 55 of file DislocationSegment.h.

◆ Ndof

template<int dim>
int model::DislocationSegment< dim >::Ndof = SplineSegmentType::Ndof
staticconstexpr

Definition at line 54 of file DislocationSegment.h.

◆ quadPerLength

template<int dim>
double model::DislocationSegment< dim >::quadPerLength
static

Definition at line 84 of file DislocationSegment.h.

◆ straight

Definition at line 78 of file DislocationSegment.h.

◆ verboseDislocationSegment

template<int dim>
int model::DislocationSegment< dim >::verboseDislocationSegment
static

Definition at line 86 of file DislocationSegment.h.

◆ zeroVector

template<int dim>
const VectorDim model::DislocationSegment< dim >::zeroVector
static

Definition at line 83 of file DislocationSegment.h.


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