Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
DislocationNode.h
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8#ifndef model_DislocationNode_h_
9#define model_DislocationNode_h_
10
11//#include <PlanarDislocationNode.h>
12
15#ifndef NDEBUG
16#define VerboseDislocationNode(N,x) if(this->network().verboseDislocationNode>=N){std::cout<<x;}
17#else
18#define VerboseDislocationNode(N,x)
19#endif
20
21namespace model
22{
23
24 template <int dim>
25 class DislocationNode : public NetworkNode<DislocationNode<dim>>
26 /* */,public SplineNode<DislocationNode<dim>,dim,0,Hermite>
27 {
28
29 public:
30
41// typedef ConfinedDislocationObject<dim> ConfinedDislocationObjectType;
43 typedef std::vector<VectorDim> VectorOfNormalsType;
45 typedef std::set<const GlidePlaneType *> GlidePlaneContainerType;
46 typedef Polyhedron<dim,dim-1> PlanarMeshFaceType;
47 typedef std::set<const PlanarMeshFaceType *> PlanarMeshFaceContainerType;
49 typedef std::set<const GrainType*> GrainContainerType;
50 typedef Eigen::Array<double,1,ClusterDynamicsParameters<dim>::mSize> ClimbVelocityScalarType;
51
57// std::shared_ptr<NetworkNodeType> virtualNode;
58// NetworkNodeType* const masterNode;
59 static int totalCappedNodes; //gives the fraction of the capped velocities
60
61 DislocationNode(LoopNetworkType* const,const VectorDim&,const VectorDim&,const ClimbVelocityScalarType&,const double&);
64 std::shared_ptr<DislocationNode> clone() const;
65 const Simplex<dim,dim>* get_includingSimplex(const VectorDim&,const Simplex<dim,dim>* const) const;
67 bool isMovableTo(const VectorDim&) const;
68 const double& velocityReduction() const;
69// bool isVirtualBoundaryNode() const __attribute__ ((deprecated));
70 bool isBoundaryNode() const;
71 bool isGrainBoundaryNode() const;
72 void updateGeometry();
73 bool set_P(const VectorDim&);
74 bool trySet_P(const VectorDim&);
75 const VectorDim& get_V() const;
76 std::set<LoopType*> sessileLoops() const;
78 void set_V(const VectorDim& vNew,const bool& isClimbingStep);
79 void projectVelocity(const bool& isClimbingStep);
82// const std::shared_ptr<NetworkNodeType>& virtualBoundaryNode() const;
85 bool isOnExternalBoundary() const;
86 bool isOnInternalBoundary() const;
87 bool isOnBoundary() const;
88 VectorDim bndNormal() const;
92 };
93
94}
95#endif
std::shared_ptr< DislocationNode > clone() const
const Simplex< dim, dim > * get_includingSimplex(const VectorDim &, const Simplex< dim, dim > *const) const
void projectVelocity(const bool &isClimbingStep)
Polyhedron< dim, dim-1 > PlanarMeshFaceType
double velocityReductionCoeff
The previous velocity vector of *this PlanarDislocationNode.
GrainContainerType grains() const
std::vector< VectorDim > VectorOfNormalsType
bool trySet_P(const VectorDim &)
std::set< const GlidePlaneType * > GlidePlaneContainerType
bool isMovableTo(const VectorDim &) const
ClimbVelocityScalarType climbVelocityScalar
VectorOfNormalsType physicalBoundaryNormals() const
const Simplex< dim, dim > * includingSimplex() const
TraitsType::NetworkNodeType NetworkNodeType
VectorDim climbDirection() const
TypeTraits< NetworkNodeType >::MeshLocation MeshLocation
TraitsType::LoopLinkType LoopLinkType
TraitsType::LoopType LoopType
std::set< LoopType * > sessileLoops() const
DislocationNode(LoopNetworkType *const, const VectorDim &, const VectorDim &, const ClimbVelocityScalarType &, const double &)
TraitsType::NetworkLinkType NetworkLinkType
TraitsType::VectorDim VectorDim
Eigen::Array< double, 1, ClusterDynamicsParameters< dim >::mSize > ClimbVelocityScalarType
std::set< const PlanarMeshFaceType * > PlanarMeshFaceContainerType
SplineNode< DislocationNode< dim >, dim, 0, Hermite > SplineNodeType
std::set< const GrainType * > GrainContainerType
const VectorDim & get_V() const
TraitsType::LoopNetworkType LoopNetworkType
VectorDim invariantDirectionOfMotion() const
void set_V(const VectorDim &vNew, const bool &isClimbingStep)
VectorDim bndNormal() const
TraitsType::LoopNodeType LoopNodeType
MeshLocation meshLocation() const
VectorDim snapToGlidePlanesinPeriodic(const VectorDim &P) const
TraitsType::FlowType FlowType
const double & velocityReduction() const
bool set_P(const VectorDim &)
GlidePlaneContainerType glidePlanes() const
const Simplex< dim, dim > * p_Simplex
GlidePlane< dim > GlidePlaneType
PlanarMeshFaceContainerType meshFaces() const
TypeTraits< DislocationLoop< dim > > TraitsType
NetworkNode(LoopNetworkType *const loopNetwork_in)
Definition NetworkNode.h:59