44 #include "../sm/CrossSections/structuralinterfacecrosssection.h" 50 #include <Emarkwd3d.h> 115 case ie1d_1d:
return _1dInterface;
117 case ie1d_2d:
return _2dInterface;
119 case ie1d_3d:
return _3dInterface;
133 answer.
resize(ndofs, ndofs);
154 bLoc.
at(1, 1) = -1.0;
155 bLoc.
at(1, 2) = +1.0;
160 bLoc.
at(1, 1) = -1.0;
161 bLoc.
at(1, 3) = +1.0;
162 bLoc.
at(2, 2) = -1.0;
163 bLoc.
at(2, 4) = +1.0;
168 bLoc.
at(1, 1) = -1.0;
169 bLoc.
at(1, 4) = +1.0;
170 bLoc.
at(2, 2) = -1.0;
171 bLoc.
at(2, 5) = +1.0;
172 bLoc.
at(3, 3) = -1.0;
173 bLoc.
at(3, 6) = +1.0;
218 ly.beVectorProductOf(lz,
normal);
223 for ( i = 1; i <= 3; i++ ) {
225 lcs.
at(2, i) = ly.at(i);
226 lcs.
at(3, i) = lz.
at(i);
288 OOFEM_ERROR(
"wrong reference node or normal specified");
298 this->
dofids = {D_u, D_v};
301 this->
dofids = {D_u, D_v, D_w};
352 if ( normal.
at(1) == 0 && normal.
at(2) == 0 && normal.
at(3) == 0 ) {
353 OOFEM_ERROR(
"normal is not defined (referenceNode=0,normal=(0,0,0))");
379 EASValsSetMType(CIRCLE_MARKER);
380 go = CreateMarker3D(p);
381 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, go);
382 EMAddGraphicsToModel(ESIModel(), go);
407 EASValsSetMType(CIRCLE_MARKER);
408 go = CreateMarker3D(p);
409 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, go);
410 EMAddGraphicsToModel(ESIModel(), go);
416 int indx, result = 0;
453 val [ 0 ] = v1.
at(indx);
457 EASValsSetMType(FILLED_CIRCLE_MARKER);
458 go = CreateMarkerWD3D(p, val [ 0 ]);
459 EGWithMaskChangeAttributes(LAYER_MASK | FILL_MASK | MTYPE_MASK, go);
460 EMAddGraphicsToModel(ESIModel(), go);
CrossSection * giveCrossSection()
int testElementGraphicActivity(Element *)
Test if particular element passed fulfills various filtering criteria for its graphics output...
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
void computeLocalSlipDir(FloatArray &normal)
void beVectorProductOf(const FloatArray &v1, const FloatArray &v2)
Computes vector product (or cross product) of vectors given as parameters, , and stores the result in...
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
Access method for default integration rule.
Domain * domain
Link to domain object, useful for communicating with other FEM components.
double & at(int i)
Coefficient access function.
virtual void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes lumped mass matrix of receiver.
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep)
#define OOFEG_RAW_GEOMETRY_LAYER
enum oofem::InterfaceElem1d::cmode mode
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
#define _IFT_InterfaceElem1d_dofIDs
virtual double giveCoordinate(int i)
int giveNumberOfSpatialDimensions()
Returns number of spatial dimensions.
MaterialMode
Type representing material mode of integration point.
Class implementing an array of integers.
MatResponseMode
Describes the character of characteristic material matrix.
#define OOFEG_DEFORMED_GEOMETRY_LAYER
virtual void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int=1, int=ALL_STRAINS)
Computes the geometrical matrix of receiver in given integration point.
int getInternalVarsDefGeoFlag()
EPixel getDeformedElementColor()
InternalStateType giveIntVarType()
Abstract base class for all "structural" finite elements.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
#define _IFT_InterfaceElem1d_normal
virtual void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
virtual MaterialMode giveMaterialMode()
Returns material mode for receiver integration points.
UnknownType
Type representing particular unknown (its physical meaning).
#define _IFT_InterfaceElem1d_refnode
void times(double f)
Multiplies receiver by factor f.
void evaluateLocalCoordinateSystem(FloatMatrix &)
virtual int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords)
Computes the global coordinates from given element's local coordinates.
virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep)
virtual double giveUpdatedCoordinate(int ic, TimeStep *tStep, double scale=1.)
Returns updated ic-th coordinate of receiver.
void resizeWithValues(int s, int allocChunk=0)
Checks size of receiver towards requested bounds.
Base class for all structural interface cross section models.
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
double at(int i, int j) const
Coefficient access function.
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
Returns dofmanager dof mask for node.
virtual bool computeLocalCoordinates(FloatArray &answer, const FloatArray &gcoords)
Computes the element local coordinates from given global coordinates.
InterfaceElem1d(int n, Domain *d)
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
void zero()
Zeroes all coefficients of receiver.
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
Computes constitutive matrix of receiver.
#define OOFEG_DEFORMED_GEOMETRY_WIDTH
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
virtual FloatArray * giveCoordinates()
void zero()
Zeroes all coefficient of receiver.
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.
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
void updateFringeTableMinMax(double *s, int size)
void beProductOf(const FloatMatrix &a, const FloatMatrix &b)
Assigns to the receiver product of .
Node * giveNode(int n)
Service for accessing particular domain node.
the oofem namespace is to define a context or scope in which all oofem names are defined.
double normalize()
Normalizes receiver.
Node * giveNode(int i) const
Returns reference to the i-th node of element.
#define OOFEG_VARPLOT_PATTERN_LAYER
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.
int numberOfDofMans
Number of dofmanagers.
Class representing Gaussian-quadrature integration rule.
void resize(int s)
Resizes receiver towards requested size.