164 int &localNodeId,
int &localElemId,
int &localBcId,
168 int inode, nodes = 3, iside, sides = 3, nd1, nd2;
169 FloatArray *corner [ 3 ], midSide [ 3 ], midNode, cor [ 3 ];
170 double x = 0.0, y = 0.0;
172 static int sideNode [ 3 ] [ 2 ] = { { 1, 2 }, { 2, 3 }, { 3, 1 } };
176 for ( inode = 0; inode < nodes; inode++ ) {
178 if ( corner [ inode ]->giveSize() != 3 ) {
180 cor [ inode ].
at(1) = corner [ inode ]->
at(1);
181 cor [ inode ].
at(2) = corner [ inode ]->
at(2);
182 cor [ inode ].
at(3) = 0.0;
184 corner [ inode ] = & ( cor [ inode ] );
187 x += corner [ inode ]->
at(1);
188 y += corner [ inode ]->
at(2);
191 for ( iside = 0; iside < sides; iside++ ) {
192 midSide [ iside ].
resize(3);
194 nd1 = sideNode [ iside ] [ 0 ] - 1;
195 nd2 = sideNode [ iside ] [ 1 ] - 1;
197 midSide [ iside ].
at(1) = ( corner [ nd1 ]->
at(1) + corner [ nd2 ]->
at(1) ) / 2.0;
198 midSide [ iside ].
at(2) = ( corner [ nd1 ]->
at(2) + corner [ nd2 ]->
at(2) ) / 2.0;
199 midSide [ iside ].
at(3) = 0.0;
204 midNode.
at(1) = x / nodes;
205 midNode.
at(2) = y / nodes;
210 sMode, tStep, nodes, corner, midSide, midNode,
211 localNodeId, localElemId, localBcId,
212 controlNode, controlDof, aMode,
"Quad1PlaneStrain");
224 #define TR_LENGHT_REDUCT 0.3333 238 EASValsSetEdgeFlag(
true);
250 go = CreateTriangle3D(p);
251 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | EDGE_COLOR_MASK | EDGE_FLAG_MASK | LAYER_MASK, go);
252 EGAttachObject(go, ( EObjectP )
this);
253 EMAddGraphicsToModel(ESIModel(), go);
270 EASValsSetEdgeFlag(
true);
282 go = CreateTriangle3D(p);
283 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | EDGE_COLOR_MASK | EDGE_FLAG_MASK | LAYER_MASK, go);
284 EMAddGraphicsToModel(ESIModel(), go);
290 int i, indx, result = 0;
294 double s [ 3 ], defScale;
318 s [ 0 ] = v1.
at(indx);
319 s [ 1 ] = v2.
at(indx);
320 s [ 2 ] = v3.
at(indx);
325 for ( i = 0; i < 3; i++ ) {
341 tr = CreateTriangleWD3D(p, s [ 0 ], s [ 1 ], s [ 2 ]);
342 EGWithMaskChangeAttributes(LAYER_MASK, tr);
343 EMAddGraphicsToModel(ESIModel(), tr);
347 for ( i = 0; i < 3; i++ ) {
353 p [ i ].z = s [ i ] * landScale;
357 p [ i ].z = s [ i ] * landScale;
364 EASValsSetFillStyle(FILL_SOLID);
365 tr = CreateTriangle3D(p);
366 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | FILL_MASK | LAYER_MASK, tr);
369 EASValsSetFillStyle(FILL_SOLID);
370 tr = CreateTriangleWD3D(p, s [ 0 ], s [ 1 ], s [ 2 ]);
371 EGWithMaskChangeAttributes(FILL_MASK | LAYER_MASK, tr);
374 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 SPRPatchType SPRNodalRecoveryMI_givePatchType()
The element interface required by ZZNodalRecoveryModel.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
ScalarAlgorithmType getScalarAlgo()
The element interface required by ZZNodalRecoveryModel.
const FloatArray & giveSubPatchCoordinates()
Returns local sub-patch coordinates of the receiver.
AnalysisMode
Mode of analysis.
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...
#define OOFEG_RAW_GEOMETRY_LAYER
virtual int SPRNodalRecoveryMI_giveNumberOfIP()
EPixel getElementEdgeColor()
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep)
virtual double giveCoordinate(int i)
virtual void computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer)
Computes interpolation matrix for element unknowns.
Class implementing an array of integers.
int & at(int i)
Coefficient access function.
#define OOFEG_DEFORMED_GEOMETRY_LAYER
virtual void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
int getInternalVarsDefGeoFlag()
EPixel getDeformedElementColor()
Class representing a general abstraction for finite element interpolation class.
InternalStateType giveIntVarType()
The element interface corresponding to ZZErrorEstimator.
The element interface corresponding to HuertaErrorEstimator.
virtual void SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap)
#define OOFEG_RAW_GEOMETRY_WIDTH
UnknownType
Type representing particular unknown (its physical meaning).
SetupMode
Mode for problem setup.
virtual double giveUpdatedCoordinate(int ic, TimeStep *tStep, double scale=1.)
Returns updated ic-th coordinate of receiver.
void resize(int n)
Checks size of receiver towards requested bounds.
virtual FEInterpolation * giveInterpolation() const
virtual void HuertaErrorEstimatorI_setupRefinedElementProblem(RefinedElement *refinedElement, int level, int nodeId, IntArray &localNodeIdArray, IntArray &globalNodeIdArray, HuertaErrorEstimatorInterface::SetupMode sMode, TimeStep *tStep, int &localNodeId, int &localElemId, int &localBcId, IntArray &controlNode, IntArray &controlDof, HuertaErrorEstimator::AnalysisMode aMode)
int numberOfGaussPoints
Number of integration points as specified by nip.
InternalStateMode giveIntVarMode()
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
void setupRefinedElementProblem2D(Element *element, RefinedElement *refinedElement, int level, int nodeId, IntArray &localNodeIdArray, IntArray &globalNodeIdArray, HuertaErrorEstimatorInterface::SetupMode mode, TimeStep *tStep, int nodes, FloatArray **corner, FloatArray *midSide, FloatArray &midNode, int &localNodeId, int &localElemId, int &localBcId, IntArray &controlNode, IntArray &controlDof, HuertaErrorEstimator::AnalysisMode aMode, const char *quadtype)
#define OOFEG_DEFORMED_GEOMETRY_WIDTH
The spatial localizer element interface associated to spatial localizer.
virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep)
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
virtual FloatArray * giveCoordinates()
virtual void HuertaErrorEstimatorI_computeNmatrixAt(GaussPoint *gp, FloatMatrix &answer)
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
InterfaceType
Enumerative type, used to identify interface type.
virtual void SPRNodalRecoveryMI_giveSPRAssemblyPoints(IntArray &pap)
void updateFringeTableMinMax(double *s, int size)
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Node * giveNode(int i) const
Returns reference to the i-th node of element.
TrPlaneStrain(int n, Domain *d)
#define OOFEG_VARPLOT_PATTERN_LAYER
Class representing integration point in finite element program.
Class representing solution step.
int numberOfDofMans
Number of dofmanagers.
void resize(int s)
Resizes receiver towards requested size.