45 #include "../sm/CrossSections/structuralinterfacecrosssection.h" 51 #include <Emarkwd3d.h> 79 answer.
at(1, 10) = answer.
at(2, 11) = answer.
at(3, 12) = n.
at(1);
80 answer.
at(1, 1) = answer.
at(2, 2) = answer.
at(3, 3) = -n.
at(1);
82 answer.
at(1, 13) = answer.
at(2, 14) = answer.
at(3, 15) = n.
at(2);
83 answer.
at(1, 4) = answer.
at(2, 5) = answer.
at(3, 6) = -n.
at(2);
85 answer.
at(1, 16) = answer.
at(2, 17) = answer.
at(3, 18) = n.
at(3);
86 answer.
at(1, 7) = answer.
at(2, 8) = answer.
at(3, 9) = -n.
at(3);
112 for (
int i = 1; i <= 3; i++ ) {
135 double determinant, weight, thickness, volume;
137 std::vector< FloatArray > lncp(3);
140 for (
int i = 1; i <= 3; i++ ) {
141 lncp[ i - 1 ].beProductOf(lcs, *this->
giveNode(i)->giveCoordinates());
147 volume = determinant * weight * thickness;
177 answer = {D_u, D_v, D_w};
201 zl.beVectorProductOf(xl, t2);
205 yl.beVectorProductOf(zl, xl);
208 for (
int i = 1; i <= 3; i++ ) {
209 answer.
at(1, i) = xl.at(i);
210 answer.
at(2, i) = yl.at(i);
211 answer.
at(3, i) = zl.at(i);
224 for (
int i = 0; i < 6; i++ ) {
225 for (
int j = 1; j <= 3; j++ ) {
226 answer.
at(i * 3 + 1, i * 3 + j) = lcs.
at(3, j);
227 answer.
at(i * 3 + 2, i * 3 + j) = lcs.
at(1, j);
228 answer.
at(i * 3 + 3, i * 3 + j) = lcs.
at(2, j);
249 EASValsSetEdgeFlag(
true);
261 go = CreateTriangle3D(p);
262 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | EDGE_COLOR_MASK | EDGE_FLAG_MASK | LAYER_MASK, go);
263 EGAttachObject(go, ( EObjectP )
this);
264 EMAddGraphicsToModel(ESIModel(), go);
CrossSection * giveCrossSection()
int testElementGraphicActivity(Element *)
Test if particular element passed fulfills various filtering criteria for its graphics output...
virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep)
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of interpolation functions (shape functions) at given point.
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
Computes constitutive matrix of receiver.
Wrapper around cell with vertex coordinates stored in FloatArray**.
virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
Computes the stress vector of receiver at given integration point, at time step tStep.
double & at(int i)
Coefficient access function.
#define OOFEG_RAW_GEOMETRY_LAYER
EPixel getElementEdgeColor()
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
virtual double giveCoordinate(int i)
Class implementing an array of integers.
MatResponseMode
Describes the character of characteristic material matrix.
virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep)
Abstract base class for all "structural" finite elements.
virtual void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
virtual void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int=1, int=ALL_STRAINS)
Computes the geometrical matrix of receiver in given integration point.
InterfaceElement3dTrLin(int n, Domain *d)
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
Returns dofmanager dof mask for node.
#define OOFEG_RAW_GEOMETRY_WIDTH
virtual double giveWeight()
Returns integration weight of receiver.
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
UnknownType
Type representing particular unknown (its physical meaning).
static FEI2dTrLin interpolation
Wrapper around element definition to provide FEICellGeometry interface.
Base class for all structural interface cross section models.
void computeLCS(FloatMatrix &answer)
double at(int i, int j) const
Coefficient access function.
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual double give(CrossSectionProperty a, GaussPoint *gp)
Returns the value of cross section property at given point.
virtual double giveTransformationJacobian(const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the determinant of the transformation.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
void zero()
Zeroes all coefficients of receiver.
virtual bool computeLocalCoordinates(FloatArray &answer, const FloatArray &gcoords)
Computes the element local coordinates from given global coordinates.
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
void zero()
Zeroes all coefficient of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
Node * giveNode(int i) const
Returns reference to the i-th node of element.
virtual int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords)
Computes the global coordinates from given element's local coordinates.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Class representing integration point in finite element program.
Class representing solution step.
virtual bool computeGtoLRotationMatrix(FloatMatrix &answer)
Returns transformation matrix from global c.s.
int numberOfDofMans
Number of dofmanagers.
const FloatArray & giveNaturalCoordinates()
Returns coordinate array of receiver.
Class representing Gaussian-quadrature integration rule.
void resize(int s)
Resizes receiver towards requested size.