87 double l, ksi, n1x, n4x, n3xx, n6xx, n2xxx, n3xxx, n5xxx, n6xxx;
96 n3xxx = 0.5 * ( 1 - ksi );
98 n6xxx = 0.5 * ( 1. + ksi );
103 answer.
at(1, 1) = n1x;
104 answer.
at(1, 4) = n4x;
105 answer.
at(2, 3) = n3xx;
106 answer.
at(2, 6) = n6xx;
107 answer.
at(3, 2) = n2xxx;
108 answer.
at(3, 3) = n3xxx;
109 answer.
at(3, 5) = n5xxx;
110 answer.
at(3, 6) = n6xxx;
115LIBeam2d :: computeGaussPoints()
146 n1 = ( 1. - ksi ) * 0.5;
147 n2 = ( 1. + ksi ) * 0.5;
150 answer.
at(1) = n1 * this->
giveNode(1)->giveCoordinate(1) + n2 *this->
giveNode(2)->giveCoordinate(1);
152 answer.
at(2) = n1 * this->
giveNode(1)->giveCoordinate(2) + n2 *this->
giveNode(2)->giveCoordinate(2);
154 answer.
at(3) = n1 * this->
giveNode(1)->giveCoordinate(3) + n2 *this->
giveNode(2)->giveCoordinate(3);
171 answer.
at(1, 1) = halfMass;
172 answer.
at(2, 2) = halfMass;
173 answer.
at(4, 4) = halfMass;
174 answer.
at(5, 5) = halfMass;
185 ksi = iLocCoord.
at(1);
186 n1 = ( 1. - ksi ) * 0.5;
187 n2 = ( 1. + ksi ) * 0.5;
192 answer.
at(1, 1) = n1;
193 answer.
at(1, 4) = n2;
194 answer.
at(2, 2) = n1;
195 answer.
at(2, 5) = n2;
196 answer.
at(3, 3) = n1;
197 answer.
at(3, 6) = n2;
206 StructuralElement :: computeStiffnessMatrix(answer, rMode, tStep);
221 answer.
at(1, 1) = cosine;
222 answer.
at(1, 2) = sine;
223 answer.
at(2, 1) = -sine;
224 answer.
at(2, 2) = cosine;
225 answer.
at(3, 3) = 1.;
226 answer.
at(4, 4) = cosine;
227 answer.
at(4, 5) = sine;
228 answer.
at(5, 4) = -sine;
229 answer.
at(5, 5) = cosine;
230 answer.
at(6, 6) = 1.;
253 double layerZeta, layerZCoord, top, bottom;
258 layerZCoord = 0.5 * ( ( 1. - layerZeta ) * bottom + ( 1. + layerZeta ) * top );
262 answer.
at(1) = masterGpStrain.
at(1) + masterGpStrain.
at(2) * layerZCoord;
263 answer.
at(2) = masterGpStrain.
at(3);
270 if ( type == IST_BeamForceMomentTensor ) {
273 }
else if ( type == IST_BeamStrainCurvatureTensor ) {
277 return StructuralElement :: giveIPValue(answer, gp, type, tStep);
283LIBeam2d :: giveDofManDofIDMask(
int inode,
IntArray &answer)
const
286 answer = {D_u, D_v, R_w};
288 answer = {D_u, D_w, R_v};
294LIBeam2d :: computeLength()
309 length = sqrt(dx * dx + dy * dy);
317LIBeam2d :: givePitch()
320 double xA, xB, yA, yB;
323 if (
pitch == 10. ) {
335 pitch = atan2(yB - yA, xB - xA);
345 StructuralElement :: initializeFrom(ir, priority);
352LIBeam2d :: initializeFinish()
354 StructuralElement :: initializeFinish();
356 xy ? (
xz =
false) : (
xz =
true);
361LIBeam2d :: giveEdgeDofMapping(
IntArray &answer,
int iEdge)
const
383LIBeam2d :: computeEdgeVolumeAround(
GaussPoint *gp,
int iEdge)
398 StructuralElement :: computeBodyLoadVectorAt(answer, load, tStep, mode);
422 answer.
at(1, 1) = cosine;
423 answer.
at(1, 2) = -sine;
424 answer.
at(2, 1) = sine;
425 answer.
at(2, 2) = cosine;
426 answer.
at(3, 3) = 1.0;
#define REGISTER_Element(class)
double giveCoordinate(int i) const
Node * giveNode(int i) const
int numberOfDofMans
Number of dofmanagers.
std::vector< std ::unique_ptr< IntegrationRule > > integrationRulesArray
CrossSection * giveCrossSection()
Domain * domain
Link to domain object, useful for communicating with other FEM components.
int number
Component number.
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.
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.
double computeLength() override
static ParamKey IPK_LIBeam2d_XZ
static FEI2dLineLin interpolationXZ
Interpolation.
static FEI2dLineLin interpolationXY
static ParamKey IPK_LIBeam2d_XY
LayeredCrossSectionInterface()
StructuralCrossSection * giveStructuralCrossSection()
Helper function which returns the structural cross-section for the element.
StructuralElement(int n, Domain *d)
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
#define PM_CHECK_FLAG_AND_REPORT(_pm, _ir, _componentnum, _paramkey, _prio, _flag)