77 double l, ksi, n1, n2, n1x, n2x, n3x;
82 n1 = 0.5 * ( 1.0 - ksi );
83 n2 = 0.5 * ( 1.0 + ksi );
92 answer.
at(1, 1) = n1x;
93 answer.
at(1, 4) = n2x;
95 answer.
at(2, 3) = n1x;
96 answer.
at(2, 6) = n2x;
98 answer.
at(3, 2) = n1x;
99 answer.
at(3, 3) = n1 - n3x * l / 8.0;
100 answer.
at(3, 5) = n2x;
101 answer.
at(3, 6) = n2 + n3x * l / 8.0;
112 double l, l8, ll88, ksi, n1x, n2x, n3x;
121 n3x = -4.0 * ksi / l;
207 answer.
at(2, 2) = n1x * n1x;
208 answer.
at(2, 3) = -n1x * n3x * l8;
209 answer.
at(2, 5) = n1x * n2x;
210 answer.
at(2, 6) = n1x * n3x * l8;
211 answer.
at(3, 2) = -n3x * l8 * n1x;
212 answer.
at(3, 3) = n3x * n3x * ll88;
213 answer.
at(3, 5) = -n3x * l8 * n2x;
214 answer.
at(3, 6) = -n3x * n3x * ll88;
218 answer.
at(5, 2) = n2x * n1x;
219 answer.
at(5, 3) = -n2x * n3x * l8;
220 answer.
at(5, 5) = n2x * n2x;
221 answer.
at(5, 6) = n2x * n3x * l8;
222 answer.
at(6, 2) = n3x * l8 * n1x;
223 answer.
at(6, 3) = -n3x * n3x * ll88;
224 answer.
at(6, 5) = n3x * l8 * n2x;
225 answer.
at(6, 2) = n3x * n3x * ll88;
270 for (
int j = 1; j <= stress.
giveSize(); j++ ) {
304 answer.
at(1, 1) = halfMass;
305 answer.
at(2, 2) = halfMass;
306 answer.
at(4, 4) = halfMass;
307 answer.
at(5, 5) = halfMass;
316 double ksi, n1, n2, n3;
319 ksi = iLocCoord.
at(1);
320 n1 = ( 1. - ksi ) * 0.5;
321 n2 = ( 1. + ksi ) * 0.5;
322 n3 = ( 1. - ksi * ksi );
328 answer.
at(1, 1) = n1;
329 answer.
at(1, 4) = n2;
331 answer.
at(2, 2) = n1;
332 answer.
at(2, 3) = -n3 * l / 8.;
333 answer.
at(2, 5) = n2;
334 answer.
at(2, 6) = n3 * l / 8.;
336 answer.
at(3, 3) = n1;
337 answer.
at(3, 6) = n2;
352 answer.
at(1, 1) = cosine;
353 answer.
at(1, 2) = sine;
354 answer.
at(2, 1) = -sine;
355 answer.
at(2, 2) = cosine;
356 answer.
at(3, 3) = 1.;
357 answer.
at(4, 4) = cosine;
358 answer.
at(4, 5) = sine;
359 answer.
at(5, 4) = -sine;
360 answer.
at(5, 5) = cosine;
361 answer.
at(6, 6) = 1.;
381 if ( type == IST_BeamForceMomentTensor ) {
384 }
else if ( type == IST_BeamStrainCurvatureTensor ) {
409 OOFEM_ERROR(
"computeConstitutiveMatrix_dPdF_At Not implemented for libeam2dnl");
420 double layerZeta, layerZCoord, top, bottom;
425 layerZCoord = 0.5 * ( ( 1. - layerZeta ) * bottom + ( 1. + layerZeta ) * top );
429 answer.
at(1) = masterGpStrain.
at(1) + masterGpStrain.
at(2) * layerZCoord;
430 answer.
at(2) = masterGpStrain.
at(3);
437 answer = { D_u, D_w, R_v };
447 n1 = ( 1. - ksi ) * 0.5;
448 n2 = ( 1. + ksi ) * 0.5;
469 length = sqrt(dx * dx + dy * dy);
479 double xA, xB, yA, yB;
482 if (
pitch == 10. ) {
489 pitch = atan2(yB - yA, xB - xA);
555 answer.
at(1, 1) = cosine;
556 answer.
at(1, 2) = -sine;
557 answer.
at(2, 1) = sine;
558 answer.
at(2, 2) = cosine;
559 answer.
at(3, 3) = 1.0;
593 if ( !
gc.testElementGraphicActivity(
this) ) {
600 EASValsSetColor(
gc.getElementColor() );
608 go = CreateLine3D(p);
609 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, go);
610 EGAttachObject(go, ( EObjectP )
this);
611 EMAddGraphicsToModel(ESIModel(), go);
618 if ( !
gc.testElementGraphicActivity(
this) ) {
622 double defScale =
gc.getDefScale();
626 EASValsSetColor(
gc.getDeformedElementColor() );
635 go = CreateLine3D(p);
636 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, go);
637 EMAddGraphicsToModel(ESIModel(), go);
#define REGISTER_Element(class)
virtual double give(CrossSectionProperty a, GaussPoint *gp) const
virtual int setupIntegrationPoints(IntegrationRule &irule, int npoints, Element *element)
double giveCoordinate(int i) const
Node * giveNode(int i) const
int numberOfDofMans
Number of dofmanagers.
std::vector< std ::unique_ptr< IntegrationRule > > integrationRulesArray
CrossSection * giveCrossSection()
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
Index giveSize() const
Returns the size of receiver.
void add(const FloatMatrix &a)
void resize(Index rows, Index cols)
*Sets size of receiver to be an empty matrix It will have zero rows and zero columns size void clear()
void zero()
Zeroes all coefficient of receiver.
bool isNotEmpty() const
Tests for empty matrix.
double at(std::size_t i, std::size_t j) const
double giveNaturalCoordinate(int i) const
Returns i-th natural element coordinate of receiver.
IntegrationPointStatus * giveMaterialStatus(IntegrationPointStatusIDType key=IPSID_Default)
double giveWeight()
Returns integration weight of receiver.
void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep) override
void computeConstitutiveMatrix_dPdF_At(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int=1, int=ALL_STRAINS) override
void computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer) override
void computeNLBMatrixAt(FloatMatrix &answer, GaussPoint *gp, int)
void computeInitialStressMatrix(FloatMatrix &answer, TimeStep *tStep) override
double computeEdgeVolumeAround(GaussPoint *, int) override
void giveDofManDofIDMask(int inode, IntArray &) const override
void computeGaussPoints() override
int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords) override
bool computeGtoLRotationMatrix(FloatMatrix &answer) override
void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType) override
Interface * giveInterface(InterfaceType it) override
void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep) override
double computeLength() override
void giveEdgeDofMapping(IntArray &answer, int) const override
int computeLoadGToLRotationMtrx(FloatMatrix &answer) override
void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep) override
LIBeam2dNL(int n, Domain *d)
void initializeFrom(InputRecord &ir, int priority) override
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
int computeLoadLEToLRotationMatrix(FloatMatrix &, int, GaussPoint *) override
void computeStrainVectorInLayer(FloatArray &answer, const FloatArray &masterGpStrain, GaussPoint *masterGp, GaussPoint *slaveGp, TimeStep *tStep) override
double computeVolumeAround(GaussPoint *gp) override
void computeBodyLoadVectorAt(FloatArray &answer, Load *load, TimeStep *tStep, ValueModeType mode) override
LayeredCrossSectionInterface()
void initializeFrom(InputRecord &ir, int priority) override
NLStructuralElement(int n, Domain *d)
virtual double giveUpdatedCoordinate(int ic, TimeStep *tStep, double scale=1.)
virtual FloatMatrixF< 3, 3 > give2dBeamStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const =0
virtual FloatArrayF< 3 > giveGeneralizedStress_Beam2d(const FloatArrayF< 3 > &generalizedStrain, GaussPoint *gp, TimeStep *tStep) const =0
StructuralCrossSection * giveStructuralCrossSection()
Helper function which returns the structural cross-section for the element.
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
virtual void computeBodyLoadVectorAt(FloatArray &answer, Load *load, TimeStep *tStep, ValueModeType mode)
const FloatArray & giveStrainVector() const
Returns the const pointer to receiver's strain vector.
const FloatArray & giveStressVector() const
Returns the const pointer to receiver's stress vector.
@ CS_BottomZCoord
Bottom z coordinate.
@ CS_TopZCoord
Top z coordinate.
@ LayeredCrossSectionInterfaceType
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
#define OOFEG_DEFORMED_GEOMETRY_LAYER
#define OOFEG_DEFORMED_GEOMETRY_WIDTH
#define OOFEG_RAW_GEOMETRY_WIDTH
#define OOFEG_RAW_GEOMETRY_LAYER