55QTrPlaneStress2dSlip :: QTrPlaneStress2dSlip(
int n,
Domain *aDomain) :
74 FloatMatrix Kaa, Kab, Kba, Kbb, daa, dab1, dab2, dba1, dba2, dbb1, dbb2, dbb3, dbb4;
85 FloatMatrix dStressdEps, dStressdS, dStressdG, dBStressdEps, dBStressdS, dBStressdG, dRStressdEps, dRStressdS, dRStressdG;
86 this->
giveSensitivities(dStressdEps, dStressdS, dStressdG, dBStressdEps, dBStressdS, dBStressdG, dRStressdEps, dRStressdS, dRStressdG, rMode, gp, tStep );
154 for (
int i=1; i <= ndof/2 ; i++) {
156 answer.
at(2*i-1) = finta.
at(i);
157 answer.
at(2*i+1) = fintb.
at(i);
158 }
else if (i % 2 == 0) {
159 answer.
at(2*i-2) = finta.
at(i);
160 answer.
at(2*i) = fintb.
at(i);
168 if ( type == IST_DisplacementVector ) {
176 }
else if ( type == IST_MacroSlipVector ) {
184 }
else if ( type == IST_TransferStress ) {
188 }
else if ( type == IST_MacroSlipGradient ) {
196 }
else if (type == IST_ReinfMembraneStress ) {
201 return Element :: giveIPValue(answer, gp, type, tStep);
212 OOFEM_ERROR(
"Can't homogenize the fields. StructuralSlipFE2Material needed.");
222 mat->
giveSensitivities(dStressdEps, dStressdS, dStressdG, dBStressdEps, dBStressdS, dBStressdG, dRStressdEps, dRStressdS, dRStressdG, mode, gp, tStep);
243 OOFEM_ERROR(
"Can't compute sensitivities. StructuralSlipFE2Material needed.");
#define REGISTER_Element(class)
void computeVectorOf(ValueModeType u, TimeStep *tStep, FloatArray &answer)
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
void plusProduct(const FloatMatrix &b, const FloatArray &s, double dV)
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
void beSubArrayOf(const FloatArray &src, const IntArray &indx)
void resize(Index rows, Index cols)
void plusProductUnsym(const FloatMatrix &a, const FloatMatrix &b, double dV)
void beProductOf(const FloatMatrix &a, const FloatMatrix &b)
void assemble(const FloatMatrix &src, const IntArray &loc)
const FloatArray & giveSubPatchCoordinates() const
Returns local sub-patch coordinates of the receiver.
IntegrationPointStatus * giveMaterialStatus(IntegrationPointStatusIDType key=IPSID_Default)
void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int lowerIndx=1, int upperIndx=ALL_STRAINS) override
void computeBHmatrixAt(GaussPoint *gp, FloatMatrix &answer) override
void giveSensitivities(FloatMatrix &dStressdEps, FloatMatrix &dStressdS, FloatMatrix &dStressdG, FloatMatrix &dBStressdEps, FloatMatrix &dBStressdS, FloatMatrix &dBStressdG, FloatMatrix &dRStressdEps, FloatMatrix &dRStressdS, FloatMatrix &dRStressdG, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep) override
void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord) override
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
void giveHomogenizedFields(FloatArray &stress, FloatArray &bStress, FloatArray &rStress, const FloatArray &strain, const FloatArray &slip, const FloatArray &slipGradient, GaussPoint *gp, TimeStep *tStep)
void giveDofManDofIDMask(int inode, IntArray &answer) const override
QTrPlaneStress2d(int n, Domain *d)
int computeNumberOfDofs() override
double computeVolumeAround(GaussPoint *gp) override
Material * giveMaterial(IntegrationPoint *ip) const override
StructuralCrossSection * giveStructuralCrossSection()
Helper function which returns the structural cross-section for the element.
virtual void computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer)
const FloatArray & giveReinfStressVector() const
const FloatArray & giveTransferStressVector() const
virtual void giveHomogenizedFields(FloatArray &stress, FloatArray &bStress, FloatArray &rStress, const FloatArray &strain, const FloatArray &slip, const FloatArray &slipGradient, GaussPoint *gp, TimeStep *tStep)
virtual void giveSensitivities(FloatMatrix &dStressdEps, FloatMatrix &dStressdS, FloatMatrix &dStressdG, FloatMatrix &dBStressdEps, FloatMatrix &dBStressdS, FloatMatrix &dBStressdG, FloatMatrix &dRStressdEps, FloatMatrix &dRStressdS, FloatMatrix &dRStressdG, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)