53#define _IFT_Shell7base_recoverStress "recoverstress"
106 {
OOFEM_ERROR(
"calling of this funciton is not allowed"); }
126 return this->initialNodeDirectors [ i - 1 ];
131 return this->initialSolutionVector;
136 return this->initialEdgeSolutionVectors [ i - 1 ];
256 void fitRecoveredStress2BC(std::vector< FloatMatrix > &answer1, std::vector< FloatMatrix > &answer2, std::vector< FloatMatrix > &dSmat, std::vector< FloatMatrix > &dSmatIP,
FloatMatrix &SmatOld,
FloatMatrix &tractionBtm,
FloatMatrix &tractionTop,
double zeroThicknessLevel,
FloatArray fulfillBC,
int startLayer,
int endLayer);
277 OOFEM_ERROR(
"ComputeStrainVectorInLayer - Should not be called! Not meaningful for this element.");
Stores all neccessary data (of a region) in a VTKPiece so it can be exported later.
FailureModuleElementInterface()
*Sets size of receiver to be an empty matrix It will have zero rows and zero columns size void clear()
LayeredCrossSectionInterface()
NLStructuralElement(int n, Domain *d)
NodalAveragingRecoveryModelInterface()
Constructor.
FloatArray initialSolutionVector
FloatMatrixF< 3, 3 > computeStressMatrix(FloatArray &genEps, GaussPoint *gp, Material *mat, TimeStep *tStep)
void giveCompositeExportData(std::vector< ExportRegion > &vtkPieces, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep) override
virtual FloatArrayF< 3 > evalCovarNormalAt(const FloatArrayF< 3 > &lCoords, FloatArray &genEpsC, TimeStep *tStep)
void giveLayerContributionToSR(FloatMatrix &dSmat, FloatMatrix &dSmatLayerIP, int layer, double zeroThicknessLevel, TimeStep *tStep)
virtual double edgeComputeLengthAround(GaussPoint *gp, const int iedge)
FloatMatrixF< 3, 7 > computeLambdaNMatrix(FloatArray &genEps, double zeta)
virtual void evaluateFailureCriteriaQuantities(FailureCriteriaStatus *fc, TimeStep *tStep)
void computePressureForceAt(GaussPoint *gp, FloatArray &answer, const int iSurf, FloatArray genEps, BoundaryLoad *surfLoad, TimeStep *tStep, ValueModeType mode)
FloatArrayF< 3 > & giveInitialNodeDirector(int i)
void NodalRecoveryMI_computeNValProduct(FloatMatrix &answer, int layer, InternalStateType type, TimeStep *tStep)
static FEI3dWedgeQuad interpolationForExport
std::array< FloatMatrixF< 3, 18 >, 3 > computeLambdaGMatrices(FloatArray &genEps, double zeta)
virtual void giveShellExportData(ExportRegion &vtkPiece, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep)
virtual FloatMatrixF< 3, 3 > evalCovarBaseVectorsAt(const FloatArrayF< 3 > &lCoords, FloatArray &genEps, TimeStep *tStep)
virtual double giveGlobalZcoord(const FloatArrayF< 3 > &lCoords)
FloatArray & giveInitialSolutionVector()
void computePressureForce(FloatArray &answer, FloatArray solVec, const int iSurf, BoundaryLoad *surfLoad, TimeStep *tStep, ValueModeType mode)
void giveTractionBC(FloatMatrix &tractionTop, FloatMatrix &tractionBtm, TimeStep *tStep)
static void giveGeneralizedStrainComponents(FloatArray genEps, FloatArrayF< 3 > &dphidxi1, FloatArrayF< 3 > &dphidxi2, FloatArrayF< 3 > &dmdxi1, FloatArrayF< 3 > &dmdxi2, FloatArrayF< 3 > &m, double &dgamdxi1, double &dgamdxi2, double &gam)
virtual FloatArrayF< 3 > vtkEvalUpdatedGlobalCoordinateAt(const FloatArrayF< 3 > &localCoords, int layer, TimeStep *tStep)
Shell7Base(int n, Domain *d)
void computeGaussPoints() override=0
virtual void computeMassMatrixNum(FloatMatrix &answer, TimeStep *tStep)
virtual void recoverShearStress(TimeStep *tStep)
void NodalRecoveryMI_recoverValues(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
virtual double computeVolumeAroundLayer(GaussPoint *mastergp, int layer)=0
std::vector< std::vector< int > > voigtIndices
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
virtual void edgeGiveUpdatedSolutionVector(FloatArray &answer, const int iedge, TimeStep *tStep)
static ParamKey IPK_Shell7Base_recoverStress
virtual void setupInitialNodeDirectors()
virtual double giveGlobalZcoordInLayer(double xi, int layer)
virtual FloatArrayF< 3 > vtkEvalInitialGlobalCoordinateAt(const FloatArrayF< 3 > &localCoords, int layer)
void computeThicknessMappingCoeff(GaussPoint *gp, FloatArray &answer)
void giveSPRcontribution(FloatMatrix &eltIPvalues, FloatMatrix &eltPolynomialValues, int layer, InternalStateType type, TimeStep *tStep)
LayeredCrossSection * giveLayeredCS()
void recoverValuesFromIP(std::vector< FloatArray > &nodes, int layer, InternalStateType type, TimeStep *tStep, stressRecoveryType SRtype=copyIPvalue)
void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep) override
void computeConstitutiveMatrix_dPdF_At(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
virtual const IntArray & giveOrderingNodes() const =0
void postInitialize() override
Performs post initialization steps.
void computePressureTangentMatrix(FloatMatrix &answer, Load *load, const int iSurf, TimeStep *tStep)
FloatMatrixF< 3, 3 > evalInitialCovarBaseVectorsAt(const FloatArrayF< 3 > &lCoords)
const char * giveClassName() const override
void nodalLeastSquareFitFromIP(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
FloatMatrixF< 3, 3 > evalInitialContravarBaseVectorsAt(const FloatArrayF< 3 > &lCoords)
FloatArray & giveInitialEdgeSolutionVector(int i)
virtual void computeBulkTangentMatrix(FloatMatrix &answer, FloatArray &solVec, TimeStep *tStep)
virtual void computeTractionForce(FloatArray &answer, const int iedge, BoundaryLoad *edgeLoad, TimeStep *tStep, ValueModeType mode, bool map2elementDOFs=false)
void computeSectionalForces(FloatArray &answer, TimeStep *tStep, FloatArray &solVec, int useUpdatedGpRecord=0)
void setupInitialEdgeSolutionVector()
void CopyIPvaluesToNodes(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
LayeredCrossSection * layeredCS
FloatMatrixF< 3, 3 > computeFAt(const FloatArrayF< 3 > &lCoords, FloatArray &genEps, TimeStep *tStep)
static FloatArrayF< 9 > convV6ToV9Stress(const FloatArrayF< 6 > &V6)
virtual void edgeComputeBmatrixAt(const FloatArray &lCoords, FloatMatrix &answer, int li=1, int ui=ALL_STRAINS)
Interface * giveInterface(InterfaceType it) override
void computeVectorOfDofIDs(const IntArray &dofIdArray, ValueModeType u, TimeStep *tStep, FloatArray &answer)
virtual FloatArrayF< 3 > evalInitialCovarNormalAt(const FloatArrayF< 3 > &lCoords)
virtual int giveNumberOfEdgeDofs()=0
void computeSectionalForcesAt(FloatArray §ionalForces, IntegrationPoint *ip, Material *mat, TimeStep *tStep, FloatArray &genEpsC, double zeta)
void updateLayerTransvStressesSR(FloatMatrix &dSmatLayerIP, int layer)
virtual void giveRecoveredTransverseInterfaceStress(std::vector< FloatMatrix > &transverseStress, TimeStep *tStep)
static FloatMatrixF< 3, 3 > giveDualBase(FloatMatrixF< 3, 3 > &base1)
void initializeFrom(InputRecord &ir, int priority) override
void computeStrainVectorInLayer(FloatArray &answer, const FloatArray &masterGpStrain, GaussPoint *masterGp, GaussPoint *slaveGp, TimeStep *tStep) override
void updateLayerTransvShearStressesSR(FloatMatrix &dSmatLayerIP, FloatMatrix &SmatOld, int layer)
virtual double computeAreaAround(GaussPoint *gp, double xi)=0
int computeNumberOfDofs() override
MaterialMode giveMaterialMode() override
void giveEdgeDofMapping(IntArray &answer, int iEdge) const override=0
virtual void giveMassFactorsAt(GaussPoint *gp, FloatArray &answer, double &gam)
void giveDofManDofIDMask(int inode, IntArray &) const override
void giveSurfaceDofMapping(IntArray &answer, int iSurf) const override=0
virtual void computeCauchyStressVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
void computeLinearizedStiffness(GaussPoint *gp, StructuralMaterial *mat, TimeStep *tStep, FloatMatrix A[3][3])
void printOutputAt(FILE *file, TimeStep *tStep) override
void computeBoundaryEdgeLoadVector(FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global) override
void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep) override
FloatMatrixF< 3, 3 > edgeEvalCovarBaseVectorsAt(const FloatArrayF< 3 > &lCoords, const int iedge, TimeStep *tStep)
int checkConsistency() override
void computeNmatrixAt(const FloatArray &iLocCoords, FloatMatrix &answer) override
std::vector< FloatArray > giveFictiousCZNodeCoordsForExport(int interface)
FloatMatrixF< 3, 3 > giveAxialMatrix(const FloatArrayF< 3 > &vec)
virtual const IntArray & giveOrderingDofTypes() const =0
std::vector< FloatArray > initialEdgeSolutionVectors
void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep) override
void giveUpdatedSolutionVector(FloatArray &answer, TimeStep *tStep)
void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int li=1, int ui=ALL_STRAINS) override
FloatArrayF< 3 > evalInitialDirectorAt(const FloatArrayF< 3 > &lCoords)
void temp_computeBoundaryVectorOf(IntArray &dofIdArray, int boundary, ValueModeType u, TimeStep *tStep, FloatArray &answer)
int giveNumberOfDofs() override
void fitRecoveredStress2BC(std::vector< FloatMatrix > &answer1, std::vector< FloatMatrix > &answer2, std::vector< FloatMatrix > &dSmat, std::vector< FloatMatrix > &dSmatIP, FloatMatrix &SmatOld, FloatMatrix &tractionBtm, FloatMatrix &tractionTop, double zeroThicknessLevel, FloatArray fulfillBC, int startLayer, int endLayer)
void giveL2contribution(FloatMatrix &ipValues, FloatMatrix &Nbar, int layer, InternalStateType type, TimeStep *tStep)
void giveZ2integratedPolynomial2GradientForStressRecAt(FloatArray &answer, FloatArray &coords)
int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords) override
int giveSymVoigtIndex(int ind1, int ind2)
virtual int giveNumberOfEdgeDofManagers()=0
void giveUnknownsAt(const FloatArrayF< 3 > &lcoords, const FloatArray &solVec, FloatArrayF< 3 > &x, FloatArrayF< 3 > &m, double &gam, TimeStep *tStep)
virtual int giveNumberOfInPlaneIP()
void ZZNodalRecoveryMI_ComputeEstimatedInterpolationMtrx(FloatArray &answer, GaussPoint *gp, InternalStateType type)
std::vector< FloatArray > giveFictiousUpdatedNodeCoordsForExport(int layer, TimeStep *tStep)
virtual const IntArray & giveOrderingEdgeNodes() const =0
void updateLayerTransvNormalStressSR(FloatMatrix &dSzzMatLayerIP, FloatArray &SzzMatOld, int layer)
void giveZintegratedPolynomialGradientForStressRecAt(FloatArray &answer, FloatArray &coords)
static FEI3dTrQuad interpolationForCZExport
void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0) override
std::vector< FloatArray > giveFictiousNodeCoordsForExport(int layer)
virtual void edgeComputeNmatrixAt(const FloatArray &lCoords, FloatMatrix &answer)
FloatArrayF< 3 > edgeEvalInitialDirectorAt(const FloatArrayF< 1 > &lCoords, const int iEdge)
void setupInitialSolutionVector()
void computeBodyLoadVectorAt(FloatArray &answer, Load *forLoad, TimeStep *tStep, ValueModeType mode) override
void computeInterLaminarStressesAt(int interfaceNum, TimeStep *tStep, std::vector< FloatArray > &interLamStresses)
void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep) override
std::vector< FloatArrayF< 3 > > initialNodeDirectors
void NodalRecoveryMI_computeNNMatrix(FloatArray &answer, int layer, InternalStateType type)
void computeConvectiveMassForce(FloatArray &answer, TimeStep *tStep)
virtual FloatArrayF< 3 > vtkEvalInitialGlobalCZCoordinateAt(const FloatArrayF< 3 > &localCoords, int interface)
std::pair< FloatArrayF< 3 >, FloatArrayF< 3 > > edgeEvalInitialCovarBaseVectorsAt(const FloatArrayF< 1 > &lCoords, const int iedge)
int giveVoigtIndex(int ind1, int ind2)
virtual int computeGlobalCoordinatesOnEdge(FloatArray &answer, const FloatArray &lcoords, const int iEdge)
VTKXMLExportModuleElementInterface()
ZZNodalRecoveryModelInterface(Element *element)
Constructor.
GaussPoint IntegrationPoint