35#ifndef sprnodalrecoverymodel_h
36#define sprnodalrecoverymodel_h
41#define _IFT_SPRNodalRecoveryModel_Name "spr"
45class SPRNodalRecoveryModelInterface;
46class ProcessCommunicator;
87 const char *
giveClassName()
const override {
return "SPRNodalRecoveryModel"; }
110#ifdef __MPI_PARALLEL_MODE
NodalRecoveryModel(Domain *d)
Constructor.
SPRNodalRecoveryModelInterface()
Constructor.
virtual SPRPatchType SPRNodalRecoveryMI_givePatchType()=0
virtual void SPRNodalRecoveryMI_giveDofMansDeterminedByPatch(IntArray &answer, int pap)=0
virtual void SPRNodalRecoveryMI_giveSPRAssemblyPoints(IntArray &pap)=0
virtual int SPRNodalRecoveryMI_giveNumberOfIP()=0
void computePatch(FloatMatrix &a, IntArray &patchElems, int ®ionValSize, SPRPatchType regType, InternalStateType type, TimeStep *tStep)
void initRegionMap(IntArray ®ionMap, IntArray ®ionTypes, InternalStateType type)
int unpackSharedDofManData(parallelStruct *s, ProcessCommunicator &processComm)
int packSharedDofManData(parallelStruct *s, ProcessCommunicator &processComm)
SPRNodalRecoveryModel(Domain *d)
Constructor.
void computePolynomialTerms(FloatArray &P, const FloatArray &coords, SPRPatchType type)
void initPatch(IntArray &patchElems, IntArray &dofManToDetermine, IntArray &pap, int papNumber, Set &elementList)
void exchangeDofManValues(FloatArray &dofManValues, IntArray &dofManPatchCount, IntArray ®ionNodalNumbers, int regionValSize)
void determinePatchAssemblyPoints(IntArray &pap, SPRPatchType regType, Set &elemset)
SPRPatchType determinePatchType(Set &elementList)
const char * giveClassName() const override
void determineValuesFromPatch(FloatArray &dofManValues, IntArray &dofManCount, IntArray ®ionNodalNumbers, IntArray &dofManToDetermine, FloatMatrix &a, SPRPatchType type)
int giveNumberOfUnknownPolynomialCoefficients(SPRPatchType regType)
@ SPRPatchType_2dquadratic
@ SPRPatchType_3dBiQuadratic
parallelStruct(FloatArray *a, IntArray *b, IntArray *c, int d)
IntArray * regionNodalNumbers
FloatArray * dofManValues
IntArray * dofManPatchCount