53 #define _IFT_Shell7base_recoverStress "recoverstress" 120 return this->initialNodeDirectors [ i - 1 ];
130 return this->initialEdgeSolutionVectors [ i - 1 ];
258 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);
280 OOFEM_ERROR(
"ComputeStrainVectorInLayer - Should not be called! Not meaningful for this element.");
void CopyIPvaluesToNodes(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
void temp_computeBoundaryVectorOf(IntArray &dofIdArray, int boundary, ValueModeType u, TimeStep *tStep, FloatArray &answer)
void evalInitialContravarBaseVectorsAt(const FloatArray &lCoords, FloatMatrix &Gcon)
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
The element interface required by NodalAvergagingRecoveryModel.
FloatArray initialSolutionVector
virtual int giveNumberOfInPlaneIP()
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual const IntArray & giveOrderingEdgeNodes() const =0
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.
FloatArray convV6ToV9Stress(const FloatArray &V6)
std::vector< std::vector< int > > voigtIndices
static void giveGeneralizedStrainComponents(FloatArray genEps, FloatArray &dphidxi1, FloatArray &dphidxi2, FloatArray &dmdxi1, FloatArray &dmdxi2, FloatArray &m, double &dgamdxi1, double &dgamdxi2, double &gam)
void nodalLeastSquareFitFromIP(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
virtual Element * ZZNodalRecoveryMI_giveElement()
void giveZintegratedPolynomialGradientForStressRecAt(FloatArray &answer, FloatArray &coords)
void NodalRecoveryMI_computeNNMatrix(FloatArray &answer, int layer, InternalStateType type)
virtual void evaluateFailureCriteriaQuantities(FailureCriteriaStatus *fc, TimeStep *tStep)
void giveUnknownsAt(const FloatArray &lcoords, FloatArray &solVec, FloatArray &x, FloatArray &m, double &gam, TimeStep *tStep)
virtual void vtkEvalUpdatedGlobalCoordinateAt(const FloatArray &localCoords, int layer, FloatArray &globalCoords, TimeStep *tStep)
The element interface required by ZZNodalRecoveryModel.
Abstract base class for "structural" finite elements with geometrical nonlinearities.
virtual void vtkEvalInitialGlobalCZCoordinateAt(const FloatArray &localCoords, int interface, FloatArray &globalCoords)
void computeStressMatrix(FloatMatrix &answer, FloatArray &genEps, GaussPoint *gp, Material *mat, TimeStep *tStep)
virtual int giveNumberOfEdgeDofManagers()=0
virtual void giveSurfaceDofMapping(IntArray &answer, int iSurf) const =0
Assembles surface dof mapping mask, which provides mapping between surface local DOFs and "global" el...
Class representing implementation of quadratic wedge interpolation class.
virtual void giveRecoveredTransverseInterfaceStress(std::vector< FloatMatrix > &transverseStress, TimeStep *tStep)
virtual void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
Evaluates nodal representation of real internal forces.
std::vector< FloatArray > initialEdgeSolutionVectors
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
void giveFictiousCZNodeCoordsForExport(std::vector< FloatArray > &nodes, int interface)
Elements with geometry defined as EGT_Composite are exported using individual pieces.
LayeredCrossSection * layeredCS
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
virtual double giveGlobalZcoordInLayer(double xi, int layer)
void computeVectorOfDofIDs(const IntArray &dofIdArray, ValueModeType u, TimeStep *tStep, FloatArray &answer)
virtual void giveDofManDofIDMask(int inode, IntArray &) const
Returns dofmanager dof mask for node.
virtual int checkConsistency()
Performs consistency check.
void giveSPRcontribution(FloatMatrix &eltIPvalues, FloatMatrix &eltPolynomialValues, int layer, InternalStateType type, TimeStep *tStep)
Abstract base class for all finite elements.
virtual int giveNumberOfDofs()
virtual void edgeComputeBmatrixAt(const FloatArray &lCoords, FloatMatrix &answer, int li=1, int ui=ALL_STRAINS)
void computeLinearizedStiffness(GaussPoint *gp, StructuralMaterial *mat, TimeStep *tStep, FloatMatrix A[3][3])
MaterialMode
Type representing material mode of integration point.
int giveSymVoigtIndex(int ind1, int ind2)
Class implementing an array of integers.
MatResponseMode
Describes the character of characteristic material matrix.
virtual void computeBodyLoadVectorAt(FloatArray &answer, Load *forLoad, TimeStep *tStep, ValueModeType mode)
Computes the load vector due to body load acting on receiver, at given time step. ...
virtual int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords)
Computes the global coordinates from given element's local coordinates.
virtual void edgeGiveUpdatedSolutionVector(FloatArray &answer, const int iedge, TimeStep *tStep)
virtual void recoverShearStress(TimeStep *tStep)
void setupInitialSolutionVector()
This class implements a layered cross section in a finite element problem.
virtual double computeVolumeAroundLayer(GaussPoint *mastergp, int layer)=0
void NodalRecoveryMI_recoverValues(std::vector< FloatArray > &recoveredValues, int layer, InternalStateType type, TimeStep *tStep)
LayeredCrossSection * giveLayeredCS()
virtual const IntArray & giveOrderingNodes() const =0
void giveL2contribution(FloatMatrix &ipValues, FloatMatrix &Nbar, int layer, InternalStateType type, TimeStep *tStep)
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
virtual const char * giveClassName() const
void edgeEvalCovarBaseVectorsAt(const FloatArray &lCoords, const int iedge, FloatMatrix &gcov, TimeStep *tStep)
void computeSectionalForcesAt(FloatArray §ionalForces, IntegrationPoint *ip, Material *mat, TimeStep *tStep, FloatArray &genEpsC, double zeta)
virtual void giveCompositeExportData(std::vector< VTKPiece > &vtkPieces, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep)
Second order triangular interpolation in 3D space (6 nodes).
void computeSectionalForces(FloatArray &answer, TimeStep *tStep, FloatArray &solVec, int useUpdatedGpRecord=0)
virtual void giveEdgeDofMapping(IntArray &answer, int iEdge) const =0
Assembles edge dof mapping mask, which provides mapping between edge local DOFs and "global" element ...
void evalInitialCovarBaseVectorsAt(const FloatArray &lCoords, FloatMatrix &Gcov)
virtual void giveShellExportData(VTKPiece &vtkPiece, IntArray &primaryVarsToExport, IntArray &internalVarsToExport, IntArray cellVarsToExport, TimeStep *tStep)
void NodalRecoveryMI_computeNValProduct(FloatMatrix &answer, int layer, InternalStateType type, TimeStep *tStep)
virtual void evalCovarNormalAt(FloatArray &nCov, const FloatArray &lCoords, FloatArray &genEpsC, TimeStep *tStep)
Abstract base class representing a boundary load (force, momentum, ...) that acts directly on a bound...
void giveUpdatedSolutionVector(FloatArray &answer, TimeStep *tStep)
std::vector< FloatArray > initialNodeDirectors
void edgeEvalInitialDirectorAt(const FloatArray &lCoords, FloatArray &answer, const int iEdge)
virtual int computeGlobalCoordinatesOnEdge(FloatArray &answer, const FloatArray &lcoords, const int iEdge)
virtual const IntArray & giveOrderingDofTypes() const =0
virtual void giveMassFactorsAt(GaussPoint *gp, FloatArray &answer, double &gam)
virtual void edgeComputeNmatrixAt(const FloatArray &lCoords, FloatMatrix &answer)
void computeBoundaryEdgeLoadVector(FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global)
Computes the contribution of the given load at the given boundary edge.
int giveVoigtIndex(int ind1, int ind2)
virtual void NodalAveragingRecoveryMI_computeSideValue(FloatArray &answer, int side, InternalStateType type, TimeStep *tStep)
static FEI3dTrQuad interpolationForCZExport
FloatArray & giveInitialNodeDirector(int i)
virtual void ZZNodalRecoveryMI_ComputeEstimatedInterpolationMtrx(FloatArray &answer, GaussPoint *gp, InternalStateType type)
void updateLayerTransvShearStressesSR(FloatMatrix &dSmatLayerIP, FloatMatrix &SmatOld, int layer)
void computeInterLaminarStressesAt(int interfaceNum, TimeStep *tStep, std::vector< FloatArray > &interLamStresses)
void setupInitialEdgeSolutionVector()
virtual void evalCovarBaseVectorsAt(const FloatArray &lCoords, FloatMatrix &gcov, FloatArray &genEps, TimeStep *tStep)
void giveLayerContributionToSR(FloatMatrix &dSmat, FloatMatrix &dSmatLayerIP, int layer, double zeroThicknessLevel, TimeStep *tStep)
static FEI3dWedgeQuad interpolationForExport
Abstract base class for all material models.
FloatArray & giveInitialSolutionVector()
void giveFictiousNodeCoordsForExport(std::vector< FloatArray > &nodes, int layer)
virtual void computeTractionForce(FloatArray &answer, const int iedge, BoundaryLoad *edgeLoad, TimeStep *tStep, ValueModeType mode, bool map2elementDOFs=false)
void computeThicknessMappingCoeff(GaussPoint *gp, FloatArray &answer)
virtual void evalInitialCovarNormalAt(FloatArray &nCov, const FloatArray &lCoords)
void edgeEvalInitialCovarBaseVectorsAt(const FloatArray &lCoords, const int iedge, FloatArray &G1, FloatArray &G3)
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
Class representing vector of real numbers.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to stream, for given time step.
Implementation of matrix containing floating point numbers.
virtual void vtkEvalInitialGlobalCoordinateAt(const FloatArray &localCoords, int layer, FloatArray &globalCoords)
IRResultType
Type defining the return values of InputRecord reading operations.
virtual double giveGlobalZcoord(const FloatArray &lCoords)
virtual MaterialMode giveMaterialMode()
Returns material mode for receiver integration points.
This class represent a 7 parameter shell element.
virtual double computeAreaAround(GaussPoint *gp, double xi)=0
virtual void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes lumped mass matrix of receiver.
virtual void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes mass matrix of receiver.
Class representing a general abstraction for surface finite element interpolation class...
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 updateLayerTransvNormalStressSR(FloatMatrix &dSzzMatLayerIP, FloatArray &SzzMatOld, int layer)
virtual void setupInitialNodeDirectors()
virtual void computeMassMatrixNum(FloatMatrix &answer, TimeStep *tStep)
void computeFAt(const FloatArray &lCoords, FloatMatrix &answer, FloatArray &genEps, TimeStep *tStep)
virtual void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int li=1, int ui=ALL_STRAINS)
Computes the geometrical matrix of receiver in given integration point.
void computePressureTangentMatrix(FloatMatrix &answer, Load *load, const int iSurf, TimeStep *tStep)
virtual void computeBulkTangentMatrix(FloatMatrix &answer, FloatArray &solVec, TimeStep *tStep)
void recoverValuesFromIP(std::vector< FloatArray > &nodes, int layer, InternalStateType type, TimeStep *tStep, stressRecoveryType SRtype=copyIPvalue)
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
Computes the stiffness matrix of receiver.
Abstract base class for all "structural" constitutive models.
virtual void computeStrainVectorInLayer(FloatArray &answer, const FloatArray &masterGpStrain, GaussPoint *masterGp, GaussPoint *slaveGp, TimeStep *tStep)
Computes full 3D strain vector in element layer.
InterfaceType
Enumerative type, used to identify interface type.
void computeConvectiveMassForce(FloatArray &answer, TimeStep *tStep)
static void giveDualBase(FloatMatrix &base1, FloatMatrix &base2)
virtual double edgeComputeLengthAround(GaussPoint *gp, const int iedge)
Load is base abstract class for all loads.
The element interface required by LayeredCrossSection.
void updateLayerTransvStressesSR(FloatMatrix &dSmatLayerIP, int layer)
virtual void computeCauchyStressVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
void giveTractionBC(FloatMatrix &tractionTop, FloatMatrix &tractionBtm, TimeStep *tStep)
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual int giveNumberOfEdgeDofs()=0
void clear()
Sets size of receiver to be an empty matrix. It will have zero rows and zero columns size...
Shell7Base(int n, Domain *d)
void computePressureForce(FloatArray &answer, FloatArray solVec, const int iSurf, BoundaryLoad *surfLoad, TimeStep *tStep, ValueModeType mode)
FloatArray & giveInitialEdgeSolutionVector(int i)
void giveFictiousUpdatedNodeCoordsForExport(std::vector< FloatArray > &nodes, int layer, TimeStep *tStep)
Class representing integration point in finite element program.
void computeLambdaNMatrix(FloatMatrix &lambda, FloatArray &genEps, double zeta)
void computeLambdaGMatrices(FloatMatrix lambda[3], FloatArray &genEps, double zeta)
Class representing solution step.
FloatMatrix giveAxialMatrix(const FloatArray &vec)
void giveZ2integratedPolynomial2GradientForStressRecAt(FloatArray &answer, FloatArray &coords)
void evalInitialDirectorAt(const FloatArray &lCoords, FloatArray &answer)
virtual void postInitialize()
Performs post initialization steps.
virtual void computeNmatrixAt(const FloatArray &iLocCoords, FloatMatrix &answer)
Computes interpolation matrix for element unknowns.
void computePressureForceAt(GaussPoint *gp, FloatArray &answer, const int iSurf, FloatArray genEps, BoundaryLoad *surfLoad, TimeStep *tStep, ValueModeType mode)
virtual void computeGaussPoints()=0
Initializes the array of integration rules member variable.