35 #include "../sm/Elements/PlaneStress/qplanstrss.h" 92 EASValsSetEdgeFlag(
true);
94 EASValsSetFillStyle(FILL_HOLLOW);
108 go = CreateQuad3D(p);
109 EGWithMaskChangeAttributes(WIDTH_MASK | FILL_MASK | COLOR_MASK | EDGE_COLOR_MASK | EDGE_FLAG_MASK | LAYER_MASK, go);
110 EGAttachObject(go, ( EObjectP )
this);
111 EMAddGraphicsToModel(ESIModel(), go);
128 EASValsSetEdgeFlag(
true);
130 EASValsSetFillStyle(FILL_HOLLOW);
144 go = CreateQuad3D(p);
145 EGWithMaskChangeAttributes(WIDTH_MASK | FILL_MASK | COLOR_MASK | EDGE_COLOR_MASK | EDGE_FLAG_MASK | LAYER_MASK, go);
146 EMAddGraphicsToModel(ESIModel(), go);
152 int i, indx, n [ 4 ], result = 0;
153 WCRec p [ 4 ], pp [ 9 ];
156 double s [ 9 ], ss [ 4 ], defScale;
165 for ( i = 1; i <= 8; i++ ) {
175 for ( i = 1; i <= 8; i++ ) {
176 s [ i - 1 ] = v [ i - 1 ].
at(indx);
188 s [ 8 ] += v [ 0 ].
at(indx);
194 for ( i = 0; i < 8; i++ ) {
209 pp [ 8 ].x = ( pp [ 4 ].x + pp [ 5 ].x + pp [ 6 ].x + pp [ 7 ].x ) / 4.;
210 pp [ 8 ].y = ( pp [ 4 ].y + pp [ 5 ].y + pp [ 6 ].y + pp [ 7 ].y ) / 4.;
214 for (
int t = 1; t <= 4; t++ ) {
220 }
else if ( t == 2 ) {
225 }
else if ( t == 3 ) {
237 ss [ 0 ] = s [ n [ 0 ] ];
238 ss [ 1 ] = s [ n [ 1 ] ];
239 ss [ 2 ] = s [ n [ 2 ] ];
240 ss [ 3 ] = s [ n [ 3 ] ];
243 for ( i = 0; i < 4; i++ ) {
244 p [ i ].x = pp [ n [ i ] ].x;
245 p [ i ].y = pp [ n [ i ] ].y;
268 tr = CreateQuadWD3D(p, ss [ 0 ], ss [ 1 ], ss [ 2 ], ss [ 3 ]);
269 EGWithMaskChangeAttributes(LAYER_MASK, tr);
270 EMAddGraphicsToModel(ESIModel(), tr);
274 for ( i = 0; i < 4; i++ ) {
291 if ( fabs(ss [ i ]) < 1.0e-6 ) {
299 tr = CreateQuad3D(p);
300 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, tr);
303 tr = CreateQuadWD3D(p, ss [ 0 ], ss [ 1 ], ss [ 2 ], ss [ 3 ]);
304 EGWithMaskChangeAttributes(LAYER_MASK, tr);
307 EMAddGraphicsToModel(ESIModel(), tr);
319 for ( i = 0; i < 8; i++ ) {
333 pp [ 8 ].x = 0.25 * ( pp [ 0 ].x + pp [ 1 ].x + pp [ 2 ].x + pp [ 3 ].x );
334 pp [ 8 ].y = 0.25 * ( pp [ 0 ].y + pp [ 1 ].y + pp [ 2 ].y + pp [ 3 ].y );
338 const FloatArray& gpCoords = gp->giveNaturalCoordinates();
339 if ( ( gpCoords.
at(1) > 0. ) && ( gpCoords.
at(2) > 0. ) ) {
344 }
else if ( ( gpCoords.
at(1) < 0. ) && ( gpCoords.
at(2) > 0. ) ) {
349 }
else if ( ( gpCoords.
at(1) < 0. ) && ( gpCoords.
at(2) < 0. ) ) {
367 for ( i = 1; i <= 4; i++ ) {
368 s [ i - 1 ] = v [ 0 ].
at(indx);
371 for ( i = 0; i < 4; i++ ) {
372 p [ i ].x = pp [ ind.
at(i + 1) ].x;
373 p [ i ].y = pp [ ind.
at(i + 1) ].y;
374 p [ i ].z = pp [ ind.
at(i + 1) ].z;
378 tr = CreateQuadWD3D(p, s [ 0 ], s [ 1 ], s [ 2 ], s [ 3 ]);
379 EGWithMaskChangeAttributes(LAYER_MASK, tr);
380 EMAddGraphicsToModel(ESIModel(), tr);
int testElementGraphicActivity(Element *)
Test if particular element passed fulfills various filtering criteria for its graphics output...
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
The element interface required by NodalAvergagingRecoveryModel.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
Access method for default integration rule.
ScalarAlgorithmType getScalarAlgo()
The element interface required by ZZNodalRecoveryModel.
double & at(int i)
Coefficient access function.
virtual int giveInternalStateAtNode(FloatArray &answer, InternalStateType type, InternalStateMode mode, int node, TimeStep *tStep)
Returns internal state variable (like stress,strain) at node of element in Reduced form...
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
#define OOFEG_RAW_GEOMETRY_LAYER
virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep)
EPixel getElementEdgeColor()
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
virtual double giveCoordinate(int i)
Class implementing an array of integers.
int & at(int i)
Coefficient access function.
#define OOFEG_DEFORMED_GEOMETRY_LAYER
int getInternalVarsDefGeoFlag()
EPixel getDeformedElementColor()
Class representing a general abstraction for finite element interpolation class.
InternalStateType giveIntVarType()
virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep)
virtual FEInterpolation * giveInterpolation() const
#define OOFEG_RAW_GEOMETRY_WIDTH
UnknownType
Type representing particular unknown (its physical meaning).
virtual double giveUpdatedCoordinate(int ic, TimeStep *tStep, double scale=1.)
Returns updated ic-th coordinate of receiver.
virtual void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
int numberOfGaussPoints
Number of integration points as specified by nip.
InternalStateMode giveIntVarMode()
Class representing vector of real numbers.
#define OOFEG_DEFORMED_GEOMETRY_WIDTH
void times(double s)
Multiplies receiver with scalar.
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
static FEI2dQuadQuad interpolation
InterfaceType
Enumerative type, used to identify interface type.
void updateFringeTableMinMax(double *s, int size)
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.
#define OOFEG_VARPLOT_PATTERN_LAYER
Class representing integration point in finite element program.
QPlaneStress2d(int n, Domain *d)
Class representing solution step.
int numberOfDofMans
Number of dofmanagers.
void add(const FloatArray &src)
Adds array src to receiver.
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.