65 Truss3d :: initializeFrom(ir, priority);
72Truss3dnl :: giveInternalForcesVector(
FloatArray &answer,
TimeStep *tStep,
int useUpdatedGpRecord)
91 if ( useUpdatedGpRecord == 1 ) {
96 vStrain.
resize( StructuralMaterial :: giveSizeOfVoigtSymVector( gp->giveMaterialMode() ) );
104 E0.
at(1) = (l2-1.)/2.;
124 StructuralMaterial :: giveReducedSymVectorForm( stressTemp, vStress, gp->giveMaterialMode() );
144 MatResponseMode rMode,
TimeStep *tStep)
163 if ( matStiffSymmFlag ) {
174 if ( matStiffSymmFlag ) {
216 A.
at(1,1) = A.
at(2,2) = A.
at(3,3) = A.
at(4,4) = A.
at(5,5) = A.
at(6,6) = 1.0;
217 A.
at(1,4) = A.
at(2,5) = A.
at(3,6) = A.
at(4,1) = A.
at(5,2) = A.
at(6,3) = -1.0;
219 double factor = 1/l0/l0;
234 answer.
at(1,1) = answer.
at(2,2) = answer.
at(3,3) = answer.
at(4,4) = answer.
at(5,5) = answer.
at(6,6) = 1.0;
235 answer.
at(1,4) = answer.
at(2,5) = answer.
at(3,6) = answer.
at(4,1) = answer.
at(5,2) = answer.
at(6,3) = -1.0;
246 E0.
at(1) = (l2-1.)/2;
251 double factor = 1/l0/l0;
253 if ( stress.at(1) == 0 ) {
256 stress.at(1) = D.
at(1,1) * 1.e-8;
258 answer.
times(stress.at(1));
259 answer.
times(factor);
264Truss3dnl :: computeGaussPoints()
#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()
Domain * giveDomain() const
int number
Component number.
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.
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)
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 plusProductUnsym(const FloatMatrix &a, const FloatMatrix &b, double dV)
void beProductOf(const FloatMatrix &a, const FloatMatrix &b)
void beTranspositionOf(const FloatMatrix &src)
double at(std::size_t i, std::size_t j) const
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 & giveStressVector() const
Returns the const pointer to receiver's stress vector.
double computeVolumeAround(GaussPoint *gp) override
double computeLength() override
void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int=1, int=ALL_STRAINS) override
void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep) override
Truss3d(int n, Domain *d)
void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
static ParamKey IPK_Truss3dnl_initialStretch
[optional] Initial stretch of the truss element.
void computeInitialStressStiffness(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
void computeBnlMatrixAt(GaussPoint *gp, FloatMatrix &answer, TimeStep *tStep, bool lin=false)
void _computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, TimeStep *tStep, bool lin=false)
void computeBlMatrixAt(GaussPoint *gp, FloatMatrix &answer)
#define PM_UPDATE_PARAMETER(_val, _pm, _ir, _componentnum, _paramkey, _prio)