OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::Quasicontinuum Class Reference

General simplification for Quasicontinuum simulation. More...

#include <quasicontinuum.h>

+ Collaboration diagram for oofem::Quasicontinuum:

Public Member Functions

 Quasicontinuum ()
 
virtual ~Quasicontinuum ()
 
void setNoDimensions (Domain *d)
 
void setupInterpolationMesh (Domain *d, int generateInterpolationElements, int interpolationElementsMaterialNumber, std::vector< IntArray > *newMeshNodes)
 
void createInterpolationElements (Domain *d)
 
void addCrosssectionToInterpolationElements (Domain *d)
 
void applyApproach1 (Domain *d)
 
void applyApproach2 (Domain *d, int homMtrxType, double volumeOfInterpolationMesh)
 
void applyApproach3 (Domain *d, int homMtrxType)
 
void homogenizationOfStiffMatrix (double &homogenizedE, double &homogenizedNu, FloatMatrix *Diso)
 
void createGlobalStiffnesMatrix (FloatMatrix *Diso, double &S0, Domain *d, int homMtrxType, double volumeOfInterpolationMesh)
 
void computeStiffnessTensorOf1Link (FloatMatrix &D1, double &S0, Element *e, Domain *d)
 
bool stiffnessAssignment (std::vector< FloatMatrix * > &individualStiffnessTensors, FloatArray &individialS0, Domain *d, Element *e, qcNode *qn1, qcNode *qn2)
 
void computeIntersectionsOfLinkWithInterpElements (IntArray &intersected, FloatArray &lengths, Domain *d, Element *e, qcNode *qn1, qcNode *qn2)
 
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 initializeConnectivityTableForInterpolationElements (Domain *d)
 
bool intersectionTestSegmentTrianglePlucker3D (FloatArray &intersectCoords, FloatArray *A, FloatArray *B, FloatArray *C, FloatArray *X1, FloatArray *X2)
 
int intersectionTestSegmentTetrahedra3D (FloatArray &intersectCoordsX, FloatArray &intersectCoordsY, FloatArray &intersectCoordsZ, FloatArray *A, FloatArray *B, FloatArray *C, FloatArray *D, FloatArray *X1, FloatArray *X2)
 
bool intersectionTestSegmentSegment2D (FloatArray &intersectCoords, FloatArray *A1, FloatArray *A2, FloatArray *B1, FloatArray *B2)
 
int intersectionTestSegmentTriangle2D (FloatArray &intersectCoordsX, FloatArray &intersectCoordsY, FloatArray *A, FloatArray *B, FloatArray *C, FloatArray *U1, FloatArray *U2)
 
void transformStiffnessTensorToMatrix (FloatMatrix *matrix, FloatMatrix *tensor)
 

Protected Attributes

std::vector< IntArrayinterpolationMeshNodes
 
IntArray interpolationElementNumbers
 
IntArray interpolationElementIndices
 
std::vector< IntArray * > connectivityTable
 
int nDimensions
 
IntArray elemList
 
IntArray nodeList
 

Detailed Description

General simplification for Quasicontinuum simulation.

Definition at line 49 of file quasicontinuum.h.

Constructor & Destructor Documentation

oofem::Quasicontinuum::Quasicontinuum ( )

Definition at line 53 of file quasicontinuum.C.

oofem::Quasicontinuum::~Quasicontinuum ( )
virtual

Definition at line 57 of file quasicontinuum.C.

Member Function Documentation

void oofem::Quasicontinuum::applyApproach2 ( Domain d,
int  homMtrxType,
double  volumeOfInterpolationMesh 
)
void oofem::Quasicontinuum::applyApproach3 ( Domain d,
int  homMtrxType 
)

d->giveNode(i)->deactivateYourself();

d->giveElement(i)->deactivateYourself();

Definition at line 388 of file quasicontinuum.C.

References _IFT_AnisotropicLinearElasticMaterial_stiff, _IFT_AnisotropicLinearElasticMaterial_talpha, _IFT_IsotropicLinearElasticMaterial_e, _IFT_IsotropicLinearElasticMaterial_n, _IFT_IsotropicLinearElasticMaterial_talpha, _IFT_Material_density, oofem::IntArray::at(), oofem::FloatMatrix::at(), oofem::classFactory, computeStiffnessTensorOf1Link(), connectivityTable, oofem::IntArray::contains(), oofem::ClassFactory::createMaterial(), oofem::CS_Thickness, elemList, oofem::Element::giveDofManArray(), oofem::Domain::giveElement(), oofem::Domain::giveEngngModel(), oofem::qcNode::giveMasterElementNumber(), oofem::Element::giveNode(), oofem::FEMComponent::giveNumber(), oofem::Domain::giveNumberOfDofManagers(), oofem::Domain::giveNumberOfElements(), oofem::Domain::giveNumberOfMaterialModels(), oofem::Element::giveNumberOfNodes(), oofem::Domain::giveNumberOfSpatialDimensions(), oofem::Node::giveQcNodeType(), oofem::IntArray::giveSize(), homogenizationOfStiffMatrix(), initializeConnectivityTableForInterpolationElements(), oofem::Material::initializeFrom(), interpolationElementIndices, interpolationElementNumbers, nDimensions, nodeList, OOFEM_ERROR, OOFEM_WARNING, oofem::IntArray::resize(), oofem::FloatArray::resize(), oofem::Domain::resizeMaterials(), oofem::QClinearStatic::setActivatedElementList(), oofem::QClinearStatic::setActivatedNodeList(), oofem::DynamicInputRecord::setField(), oofem::Domain::setMaterial(), oofem::Element::setMaterial(), stiffnessAssignment(), transformStiffnessTensorToMatrix(), oofem::FloatArray::zero(), and oofem::IntArray::zero().

Referenced by oofem::QClinearStatic::postInitialize().

void oofem::Quasicontinuum::computeIntersectionsOfLinkWithInterpElements ( IntArray intersected,
FloatArray lengths,
Domain d,
Element e,
qcNode qn1,
qcNode qn2 
)
void oofem::Quasicontinuum::homogenizationOfStiffMatrix ( double &  homogenizedE,
double &  homogenizedNu,
FloatMatrix Diso 
)

Definition at line 641 of file quasicontinuum.C.

References oofem::FloatMatrix::at(), nDimensions, and OOFEM_ERROR.

Referenced by applyApproach2(), and applyApproach3().

bool oofem::Quasicontinuum::intersectionTestSegmentSegment2D ( FloatArray intersectCoords,
FloatArray A1,
FloatArray A2,
FloatArray B1,
FloatArray B2 
)
int oofem::Quasicontinuum::intersectionTestSegmentTetrahedra3D ( FloatArray intersectCoordsX,
FloatArray intersectCoordsY,
FloatArray intersectCoordsZ,
FloatArray A,
FloatArray B,
FloatArray C,
FloatArray D,
FloatArray X1,
FloatArray X2 
)
int oofem::Quasicontinuum::intersectionTestSegmentTriangle2D ( FloatArray intersectCoordsX,
FloatArray intersectCoordsY,
FloatArray A,
FloatArray B,
FloatArray C,
FloatArray U1,
FloatArray U2 
)
bool oofem::Quasicontinuum::intersectionTestSegmentTrianglePlucker3D ( FloatArray intersectCoords,
FloatArray A,
FloatArray B,
FloatArray C,
FloatArray X1,
FloatArray X2 
)
void oofem::Quasicontinuum::setNoDimensions ( Domain d)
void oofem::Quasicontinuum::setupInterpolationMesh ( Domain d,
int  generateInterpolationElements,
int  interpolationElementsMaterialNumber,
std::vector< IntArray > *  newMeshNodes 
)
void oofem::Quasicontinuum::transformStiffnessTensorToMatrix ( FloatMatrix matrix,
FloatMatrix tensor 
)

Member Data Documentation

IntArray oofem::Quasicontinuum::elemList
protected

Definition at line 58 of file quasicontinuum.h.

Referenced by applyApproach2(), and applyApproach3().

std::vector<IntArray> oofem::Quasicontinuum::interpolationMeshNodes
protected

Definition at line 53 of file quasicontinuum.h.

Referenced by createInterpolationElements(), and setupInterpolationMesh().

int oofem::Quasicontinuum::nDimensions
protected
IntArray oofem::Quasicontinuum::nodeList
protected

Definition at line 59 of file quasicontinuum.h.

Referenced by applyApproach2(), and applyApproach3().


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

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:40 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011