59Truss3dnl2 :: postInitialize()
61 Truss3d :: postInitialize();
69Truss3dnl2 :: giveInternalForcesVector(
FloatArray &answer,
TimeStep *tStep,
int useUpdatedGpRecord)
86 if ( useUpdatedGpRecord == 1 ) {
91 vStrain.
resize( StructuralMaterial :: giveSizeOfVoigtSymVector( gp->giveMaterialMode() ) );
114 StructuralMaterial :: giveReducedSymVectorForm( stressTemp, vStress, gp->giveMaterialMode() );
131Truss3dnl2 :: computeLength()
163 MatResponseMode rMode,
TimeStep *tStep)
184 if ( matStiffSymmFlag ) {
195 if ( matStiffSymmFlag ) {
224Truss3dnl2 :: giveAmatrix()
227 A =
FloatMatrix({{1, 0, 0, -1, 0, 0}, {0, 1, 0, 0, -1, 0}, {0, 0, 1, 0, 0, -1}, {-1, 0, 0, 1, 0, 0}, {0, -1, 0, 0, 1, 0}, {0, 0, -1, 0, 0, 1}});
232Truss3dnl2 :: givePmatrix()
235 P =
FloatMatrix({{1,0,0},{0,1,0},{0,0,1},{-1,0,0},{0,-1,0},{0,0,-1}});
266 if ( stress.at(1) == 0 ) {
272 answer.
times(stress.at(1));
278Truss3dnl2 :: computeGaussPoints()
290Truss3dnl2 :: giveCellGeometryWrapper()
#define REGISTER_Element(class)
virtual bool isActivated(TimeStep *tStep)
void computeVectorOf(ValueModeType u, TimeStep *tStep, FloatArray &answer)
std::vector< std ::unique_ptr< IntegrationRule > > integrationRulesArray
CrossSection * giveCrossSection()
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
double computeNorm() const
void plusProduct(const FloatMatrix &b, const FloatArray &s, double dV)
Index giveSize() const
Returns the size of receiver.
void zero()
Zeroes all coefficients of receiver.
static FloatArray fromConcatenated(std::initializer_list< FloatArray > ini)
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
void add(const FloatArray &src)
void subtract(const FloatArray &src)
void plusProductSymmUpper(const FloatMatrix &a, const FloatMatrix &b, double dV)
static FloatMatrix fromArray(const FloatArray &vector, bool transpose=false)
void add(const FloatMatrix &a)
*Sets size of receiver to be an empty matrix It will have zero rows and zero columns size void clear()
void beProductTOf(const FloatMatrix &a, const FloatMatrix &b)
void plusProductUnsym(const FloatMatrix &a, const FloatMatrix &b, double dV)
void beProductOf(const FloatMatrix &a, const FloatMatrix &b)
double at(std::size_t i, std::size_t j) const
void subtract(const FloatMatrix &a)
void beTProductOf(const FloatMatrix &a, const FloatMatrix &b)
bool isCharacteristicMtrxSymmetric(MatResponseMode mode) const override=0
StructuralCrossSection * giveStructuralCrossSection()
Helper function which returns the structural cross-section for the element.
std::unique_ptr< FloatArray > initialDisplacements
Initial displacement vector, describes the initial nodal displacements when element has been casted.
const FloatArray & givePVector() const
Returns the const pointer to receiver's first Piola-Kirchhoff stress vector.
double computeVolumeAround(GaussPoint *gp) override
Truss3d(int n, Domain *d)
FloatMatrixF< 3, 6 > givePmatrix()
FloatMatrixF< 6, 6 > giveAmatrix()
double computeDeformedLength(const FloatArray &d)
virtual FEICellGeometry * giveCellGeometryWrapper()
FEICellGeometry * cellGeometryWrapper
void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
double computeLength() override
void _computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, TimeStep *tStep, const FloatArray &u)
FloatArray _computeStrainVector(GaussPoint *gp, const FloatArray &u)
void computeInitialStressStiffness(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep, const FloatMatrix &B, const FloatArray &d)