35 #ifndef quasicontinuum_h 36 #define quasicontinuum_h 67 void setupInterpolationMesh(
Domain *d,
int generateInterpolationElements,
int interpolationElementsMaterialNumber, std::vector<IntArray> *newMeshNodes);
99 #endif // quasicontinuum_h void applyApproach3(Domain *d, int homMtrxType)
void computeStiffnessTensorOf1Link(FloatMatrix &D1, double &S0, Element *e, Domain *d)
IntArray interpolationElementNumbers
std::vector< IntArray > interpolationMeshNodes
bool computeIntersectionsOfLinkWith2DTringleElements(IntArray &intersected, FloatArray &lengths, Domain *d, Element *e, qcNode *qn1, qcNode *qn2)
bool computeIntersectionsOfLinkWith3DTetrahedraElements(IntArray &intersected, FloatArray &lengths, Domain *d, Element *e, qcNode *qn1, qcNode *qn2)
void transformStiffnessTensorToMatrix(FloatMatrix *matrix, FloatMatrix *tensor)
General simplification for Quasicontinuum simulation.
void applyApproach1(Domain *d)
virtual ~Quasicontinuum()
int intersectionTestSegmentTriangle2D(FloatArray &intersectCoordsX, FloatArray &intersectCoordsY, FloatArray *A, FloatArray *B, FloatArray *C, FloatArray *U1, FloatArray *U2)
Abstract base class for all finite elements.
void createInterpolationElements(Domain *d)
Class implementing an array of integers.
void computeIntersectionsOfLinkWithInterpElements(IntArray &intersected, FloatArray &lengths, Domain *d, Element *e, qcNode *qn1, qcNode *qn2)
void setupInterpolationMesh(Domain *d, int generateInterpolationElements, int interpolationElementsMaterialNumber, std::vector< IntArray > *newMeshNodes)
bool stiffnessAssignment(std::vector< FloatMatrix * > &individualStiffnessTensors, FloatArray &individialS0, Domain *d, Element *e, qcNode *qn1, qcNode *qn2)
bool intersectionTestSegmentTrianglePlucker3D(FloatArray &intersectCoords, FloatArray *A, FloatArray *B, FloatArray *C, FloatArray *X1, FloatArray *X2)
void homogenizationOfStiffMatrix(double &homogenizedE, double &homogenizedNu, FloatMatrix *Diso)
Class implementing hanging node connected to other nodes (masters) using interpolation.
void setNoDimensions(Domain *d)
void createGlobalStiffnesMatrix(FloatMatrix *Diso, double &S0, Domain *d, int homMtrxType, double volumeOfInterpolationMesh)
void applyApproach2(Domain *d, int homMtrxType, double volumeOfInterpolationMesh)
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
void initializeConnectivityTableForInterpolationElements(Domain *d)
void addCrosssectionToInterpolationElements(Domain *d)
int intersectionTestSegmentTetrahedra3D(FloatArray &intersectCoordsX, FloatArray &intersectCoordsY, FloatArray &intersectCoordsZ, FloatArray *A, FloatArray *B, FloatArray *C, FloatArray *D, FloatArray *X1, FloatArray *X2)
std::vector< IntArray * > connectivityTable
bool intersectionTestSegmentSegment2D(FloatArray &intersectCoords, FloatArray *A1, FloatArray *A2, FloatArray *B1, FloatArray *B2)
the oofem namespace is to define a context or scope in which all oofem names are defined.
IntArray interpolationElementIndices