35#ifndef abaqususerelement_h
36#define abaqususerelement_h
45#define _IFT_AbaqusUserElement_Name "abaqususerelement"
46#define _IFT_AbaqusUserElement_userElement "uel"
47#define _IFT_AbaqusUserElement_numcoords "coords"
48#define _IFT_AbaqusUserElement_dofs "dofs"
49#define _IFT_AbaqusUserElement_numsvars "numsvars"
50#define _IFT_AbaqusUserElement_properties "properties"
51#define _IFT_AbaqusUserElement_type "type"
52#define _IFT_AbaqusUserElement_name "name"
151 int *nnode,
double *u,
double *du,
double *v,
double *a,
int *
jtype,
152 double time[ 2 ],
double *dtime,
int *
kstep,
int *
kinc,
int *jelem,
154 int *
npredef,
int *lflags,
int *mvarx,
double *
ddlmag,
int *mdload,
155 double *pnewdt,
int *
jprops,
int *njprop,
double *period);
183 {
OOFEM_ERROR(
"Abaqus user element cannot support computing local unknown vector\n"); }
222 OOFEM_ERROR(
"Function not defined for AbaqusUserElement and should never be called. This is a bug.");
225 OOFEM_ERROR(
"Function not defined for AbaqusUserElement and should never be called. This is a bug.");
229 OOFEM_ERROR(
"Function not defined for AbaqusUserElement and should never be called. This is a bug.");
233 OOFEM_ERROR(
"Function not defined for AbaqusUserElement and should never be called. This is a bug.");
#define _IFT_AbaqusUserElement_Name
FloatArray svars
Status variables.
void computeBmatrixAt(GaussPoint *, FloatMatrix &, int=1, int=ALL_STRAINS) override
static ParamKey IPK_AbaqusUserElement_userElement
virtual FloatMatrix & letTempRhsBe(FloatMatrix &src)
static ParamKey IPK_AbaqusUserElement_type
integrationDomain giveIntegrationDomain() const override
virtual const FloatArray & giveTempStateVector() const
static ParamKey IPK_AbaqusUserElement_properties
void postInitialize() override
Performs post initialization steps. Called after all components are created and initialized.
virtual const FloatArray & giveStateVector() const
void initializeFrom(InputRecord &ir, int priority) override
void giveDofManDofIDMask(int inode, IntArray &answer) const override
void * uelobj
Dynamically loaded uel.
static ParamKey IPK_AbaqusUserElement_numsvars
Element_Geometry_Type giveGeometryType() const override
FloatArray U
Inputs to element routines. Velocity and Acceleration currently ignored.
void updateYourself(TimeStep *tStep) override
const char * giveInputRecordName() const override
virtual void letTempTangentBe(FloatMatrix &src)
FloatMatrix amatrx
Element amatrx.
std::string filename
File containing the uel function.
bool hasTangentFlag
Keeps track of whether the tangent has been obtained already.
FloatArray props
Element properties.
void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0) override
virtual const FloatMatrix & giveTempTangent()
int numSvars
Number of status variables.
virtual ~AbaqusUserElement()
Destructor.
static ParamKey IPK_AbaqusUserElement_numcoords
AbaqusUserElement(int n, Domain *d)
Constructor.
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).
void giveInputRecord(DynamicInputRecord &input) override
void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep) override
const char * giveClassName() const override
int computeNumberOfDofs() override
virtual FloatArray & letTempSvarsBe(FloatArray &src)
void computeConsistentMassMatrix(FloatMatrix &answer, TimeStep *tStep, double &mass, const double *ipDensity=NULL) override
void computeField(ValueModeType mode, TimeStep *tStep, const FloatArray &lcoords, FloatArray &answer) override
void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep) override
void updateInternalState(TimeStep *tStep) override
static ParamKey IPK_AbaqusUserElement_name
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
static ParamKey IPK_AbaqusUserElement_dofs
void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) override
StructuralElement(int n, Domain *d)
@ _UnknownIntegrationDomain