35 #ifndef enrichmentfunction_h 36 #define enrichmentfunction_h 41 #define _IFT_DiscontinuousFunction_Name "discontinuousfunction" 42 #define _IFT_HeavisideFunction_Name "heavisidefunction" 43 #define _IFT_RampFunction_Name "rampfunction" 47 class EnrichmentDomain;
73 virtual void evaluateEnrFuncAt(
double &oEnrFunc,
const FloatArray &iPos,
const double &iLevelSet)
const = 0;
74 virtual void evaluateEnrFuncDerivAt(
FloatArray &oEnrFuncDeriv,
const FloatArray &iPos,
const double &iLevelSet,
const FloatArray &iGradLevelSet)
const = 0;
81 virtual void giveJump(std :: vector< double > &oJumps)
const = 0;
85 virtual const char *
giveClassName()
const {
return "EnrichmentFunction"; }
98 this->numberOfDofs = 1;
101 virtual void evaluateEnrFuncAt(
double &oEnrFunc,
const FloatArray &iPos,
const double &iLevelSet)
const;
102 virtual void evaluateEnrFuncDerivAt(
FloatArray &oEnrFuncDeriv,
const FloatArray &iPos,
const double &iLevelSet,
const FloatArray &iGradLevelSet)
const;
104 virtual void giveJump(std :: vector< double > &oJumps)
const {
106 oJumps.push_back(2.0);
109 virtual const char *
giveClassName()
const {
return "DiscontinuousFunction"; }
122 this->numberOfDofs = 1;
125 virtual void evaluateEnrFuncAt(
double &oEnrFunc,
const FloatArray &iPos,
const double &iLevelSet)
const;
126 virtual void evaluateEnrFuncDerivAt(
FloatArray &oEnrFuncDeriv,
const FloatArray &iPos,
const double &iLevelSet,
const FloatArray &iGradLevelSet)
const;
128 virtual void giveJump(std :: vector< double > &oJumps)
const {
130 oJumps.push_back(1.0);
144 virtual void evaluateEnrFuncAt(std :: vector< double > &oEnrFunc,
const double &iR,
const double &iTheta)
const;
145 virtual void evaluateEnrFuncDerivAt(std :: vector< FloatArray > &oEnrFuncDeriv,
const double &iR,
const double &iTheta)
const;
147 virtual void giveJump(std :: vector< double > &oJumps)
const;
148 virtual void giveJump(std :: vector< double > &oJumps,
const double &iRadius)
const;
150 std :: string
errorInfo(
const char *func)
const {
return std :: string( giveClassName() ) + func; }
161 virtual void evaluateEnrFuncAt(std :: vector< double > &oEnrFunc,
const double &iR,
const double &iTheta)
const;
162 virtual void evaluateEnrFuncDerivAt(std :: vector< FloatArray > &oEnrFuncDeriv,
const double &iR,
const double &iTheta)
const;
164 virtual void giveJump(std :: vector< double > &oJumps)
const;
165 virtual void giveJump(std :: vector< double > &oJumps,
const double &iRadius)
const;
167 std :: string
errorInfo(
const char *func)
const {
return std :: string( giveClassName() ) + func; }
168 virtual const char *
giveClassName()
const {
return "CohesiveBranchFunction"; }
180 this->numberOfDofs = 1;
183 virtual void evaluateEnrFuncAt(
double &oEnrFunc,
const FloatArray &iPos,
const double &iLevelSet)
const;
184 virtual void evaluateEnrFuncDerivAt(
FloatArray &oEnrFuncDeriv,
const FloatArray &iPos,
const double &iLevelSet,
const FloatArray &iGradLevelSet)
const;
186 virtual void giveJump(std :: vector< double > &oJumps)
const {
188 oJumps.push_back(0.0);
195 #endif // enrichmentfunction_h #define _IFT_HeavisideFunction_Name
int giveNumberOfDofs() const
virtual void giveJump(std::vector< double > &oJumps) const
Returns the discontinuous jump in the enrichment function when the lvel set function changes sign...
Class representing bimaterial interface.
virtual ~CohesiveBranchFunction()
std::string errorInfo(const char *func) const
virtual ~EnrichmentFunction()
Destructor.
virtual const char * giveClassName() const
#define _IFT_DiscontinuousFunction_Name
RampFunction(int n, Domain *aDomain)
Abstract class representing global shape function Base class declares abstract interface common to al...
DiscontinuousFunction(int n, Domain *aDomain)
HeavisideFunction(int n, Domain *aDomain)
EnrichmentFunction(int n, Domain *aDomain)
Constructor.
virtual const char * giveInputRecordName() const
virtual const char * giveClassName() const
#define _IFT_RampFunction_Name
Class representing Sign EnrichmentFunction.
virtual void giveJump(std::vector< double > &oJumps) const
Returns the discontinuous jump in the enrichment function when the lvel set function changes sign...
virtual const char * giveClassName() const
Class representing vector of real numbers.
Class representing a branch function for cohesive cracks.
std::string errorInfo(const char *func) const
IRResultType
Type defining the return values of InputRecord reading operations.
virtual const char * giveClassName() const
Class representing Heaviside EnrichmentFunction.
virtual void giveJump(std::vector< double > &oJumps) const
Returns the discontinuous jump in the enrichment function when the lvel set function changes sign...
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual const char * giveInputRecordName() const
Class representing the four classical linear elastic branch functions.
virtual ~LinElBranchFunction()
The top abstract class of all classes constituting the finite element mesh.
virtual const char * giveClassName() const
virtual const char * giveClassName() const
virtual const char * giveInputRecordName() const