35#ifndef SOLUTIONBASEDSHAPEFUNCTION_H_
36#define SOLUTIONBASEDSHAPEFUNCTION_H_
42#define _IFT_SolutionbasedShapeFunction_Name "solutionbasedshapefunction"
43#define _IFT_SolutionbasedShapeFunction_ShapeFunctionFile "shapefunctionfile"
44#define _IFT_SolutionbasedShapeFunction_Externalset "externalset"
45#define _IFT_SolutionbasedShapeFunction_UseCorrectionFactors "usecorrectionfactors"
46#define _IFT_SolutionbasedShapeFunction_DumpSnapshots "dumpsnapshots"
75 modeStruct& operator= (modeStruct& other) {
152 DofManager *giveInternalDofManager(
int i)
override;
155 double giveUnknown(ValueModeType mode,
TimeStep *tStep,
ActiveDof *dof)
override;
163 int giveNumberOfMasterDofs(
ActiveDof *dof)
override;
166 const char *
giveClassName()
const override {
return "SolutionbasedShapeFunction"; }
ActiveBoundaryCondition(int n, Domain *d)
virtual ~SolutionbasedShapeFunction()
bool isCoeff(ActiveDof *dof)
void computeCorrectionFactors(modeStruct &myMode, IntArray &Dofs, double &am, double &ap)
bool isPrimaryDof(ActiveDof *dof) override
void giveValueAtPoint(FloatArray &answer, const FloatArray &coords, IntArray &dofID, EngngModel &myEngngModel)
giveValueAtPoint
SolutionbasedShapeFunction(int n, Domain *d)
void setLoads(EngngModel &myEngngModel, int d)
bool hasBc(Dof *dof, TimeStep *tStep) override
void computeBaseFunctionValueAt(FloatArray &answer, const FloatArray &coords, IntArray &dofIDs, EngngModel &myEngngModel)
void initializeSurfaceData(modeStruct &mode)
double checkIncompressibility(EngngModel &myEngngModel)
bool requiresActiveDofs() override
std ::vector< modeStruct > modes
const char * giveInputRecordName() const override
const char * giveClassName() const override
void copyDofManagersToSurfaceData(modeStruct &mode, IntArray nodeList, bool isPlus, bool isMinus, bool isZero)
int giveNumberOfInternalDofManagers() override
Gives the number of internal dof managers.
void updateModelWithFactors(modeStruct &m)
void splitBoundaryNodeIDs(modeStruct &mode, Element &e, IntArray &boundary, IntArray &pList, IntArray &mList, IntArray &zList, FloatMatrix &nodeValues)
bool useCorrectionFactors
void giveCorrectedValueAtPoint(FloatArray &answer, const FloatArray &coords, IntArray &dofID, EngngModel &myEngngModel)
void setBoundaryConditionOnDof(Dof *d, double value)
void whichBoundary(const FloatArray &coord, bool &isPlus, bool &isMinus, bool &isZero)
#define _IFT_SolutionbasedShapeFunction_Name
std::unique_ptr< EngngModel > myEngngModel
std ::vector< SurfaceDataStruct > SurfaceData