35 #ifndef abaqususerelement_h 36 #define abaqususerelement_h 46 #define _IFT_AbaqusUserElement_Name "abaqususerelement" 47 #define _IFT_AbaqusUserElement_userElement "uel" 48 #define _IFT_AbaqusUserElement_numcoords "coords" 49 #define _IFT_AbaqusUserElement_dofs "dofs" 50 #define _IFT_AbaqusUserElement_numsvars "numsvars" 51 #define _IFT_AbaqusUserElement_properties "properties" 52 #define _IFT_AbaqusUserElement_type "type" 53 #define _IFT_AbaqusUserElement_name "name" 152 int *nnode,
double *u,
double *du,
double *v,
double *a,
int *
jtype,
153 double time [ 2 ],
double *dtime,
int *
kstep,
int *
kinc,
int *jelem,
154 double params [ 3 ],
int *ndload,
int *jdltyp,
double *
adlmag,
double *
predef,
155 int *
npredef,
int *lflags,
int *mvarx,
double *
ddlmag,
int *mdload,
156 double *pnewdt,
int *
jprops,
int *njprop,
double *period);
176 {
OOFEM_ERROR(
"Abaqus user element cannot support computing local unknown vector\n"); }
185 hasTangentFlag =
true;
188 return tempRHS = src;
191 return tempSvars = src;
221 OOFEM_ERROR(
"Function not defined for AbaqusUserElement and should never be called. This is a bug.");
224 OOFEM_ERROR(
"Function not defined for AbaqusUserElement and should never be called. This is a bug.");
228 OOFEM_ERROR(
"Function not defined for AbaqusUserElement and should never be called. This is a bug.");
232 OOFEM_ERROR(
"Function not defined for AbaqusUserElement and should never be called. This is a bug.");
239 #endif // abaqususerelement_h
void(* uel)(double *rhs, double *amatrx, double *svars, double energy[8], int *ndofel, int *nrhs, int *nsvars, double *props, int *nprops, double *coords, int *mcrd, int *nnode, double *u, double *du, double *v, double *a, int *jtype, double time[2], double *dtime, int *kstep, int *kinc, int *jelem, double params[3], int *ndload, int *jdltyp, double *adlmag, double *predef, int *npredef, int *lflags, int *mvarx, double *ddlmag, int *mdload, double *pnewdt, int *jprops, int *njprop, double *period)
Pointer to the dynamically loaded uel-function (translated to C)
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
integrationDomain
Used by integrator class to supply integration points for proper domain to be integrated (Area...
virtual const FloatMatrix & giveTempTangent()
virtual void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
Evaluates nodal representation of real internal forces.
UEL interface from Abaqus user elements.
Element_Geometry_Type
Enumerative type used to classify element geometry Possible values are: EGT_point - point in space EG...
virtual Element_Geometry_Type giveGeometryType() const
Returns the element geometry type.
Abstract base class for "structural" finite elements with geometrical nonlinearities.
virtual const FloatArray & giveTempStateVector() const
std::string filename
File containing the uel function.
virtual void postInitialize()
Performs post initialization steps.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
FloatArray props
Element properties.
virtual void updateInternalState(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
virtual FloatArray & letTempSvarsBe(FloatArray &src)
virtual void computeBmatrixAt(GaussPoint *, FloatMatrix &, int=1, int=ALL_STRAINS)
Computes the geometrical matrix of receiver in given integration point.
virtual const char * giveInputRecordName() const
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
Computes the stress vector of receiver at given integration point, at time step tStep.
int numSvars
Number of status variables.
Class implementing an array of integers.
MatResponseMode
Describes the character of characteristic material matrix.
AbaqusUserElement(int n, Domain *d)
Constructor.
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
#define _IFT_AbaqusUserElement_Name
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
Computes constitutive matrix of receiver.
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
Returns dofmanager dof mask for node.
void * uelobj
Dynamically loaded uel.
virtual const char * giveClassName() const
FloatMatrix amatrx
Element amatrx.
FloatArray U
Inputs to element routines. Velocity and Acceleration currently ignored.
virtual void letTempTangentBe(FloatMatrix &src)
virtual void computeConsistentMassMatrix(FloatMatrix &answer, TimeStep *tStep, double &mass, const double *ipDensity=NULL)
Computes consistent mass matrix of receiver using numerical integration over element volume...
virtual ~AbaqusUserElement()
Destructor.
virtual void updateYourself(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
bool hasTangentFlag
Keeps track of whether the tangent has been obtained already.
Class representing vector of real numbers.
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
Computes the stiffness matrix of receiver.
virtual void computeField(ValueModeType mode, TimeStep *tStep, const FloatArray &lcoords, FloatArray &answer)
Computes the unknown vector interpolated at the specified local coordinates.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
FloatArray svars
Status variables.
InterfaceType
Enumerative type, used to identify interface type.
virtual FloatMatrix & letTempRhsBe(FloatMatrix &src)
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual const FloatArray & giveStateVector() const
virtual integrationDomain giveIntegrationDomain() const
Returns integration domain for receiver, used to initialize integration point over receiver volume...
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
Class representing integration point in finite element program.
Class representing solution step.