35 #include "../sm/Elements/Interfaces/structuralinterfaceelementphf.h" 95 for(
int j = 1; j <= dofIdArray.
giveSize( ); j++) {
190 answer.
add(facN*dA, Nd);
195 BStress = grad_d * l * l;
282 answer.
resize( nDofs, nDofs );
330 if ( matStiffSymmFlag ) {
338 if ( matStiffSymmFlag ) {
401 double factorN = 1.0 + l* fPrime;
402 double factorB = l*l;
CrossSection * giveCrossSection()
virtual bool isActivated(TimeStep *tStep)
virtual void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
Returns equivalent nodal forces vectors.
StructuralInterfaceMaterial * giveInterfaceMaterial()
void subtract(const FloatArray &src)
Subtracts array src to receiver.
virtual void giveEngTraction(FloatArray &answer, GaussPoint *gp, const FloatArray &jump, const double damage, TimeStep *tStep)
virtual void computeTransformationMatrixAt(GaussPoint *gp, FloatMatrix &answer)=0
virtual void evaldNdxi(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the matrix of derivatives of interpolation functions (shape functions) at given point...
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0
Evaluates the array of interpolation functions (shape functions) at given point.
virtual void getLocationArray_u(IntArray &answer)=0
void computeVectorOf(ValueModeType u, TimeStep *tStep, FloatArray &answer)
Returns local vector of unknowns.
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
Access method for default integration rule.
virtual double computeDamageAt(GaussPoint *gp, ValueModeType valueMode, TimeStep *stepN)
virtual void computeNd_matrixAt(const FloatArray &lCoords, FloatMatrix &N)
virtual void computeTraction(FloatArray &traction, IntegrationPoint *ip, FloatArray &jump, TimeStep *tStep)
double & at(int i)
Coefficient access function.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
virtual void computeCovarBaseVectorsAt(GaussPoint *gp, FloatMatrix &G)=0
void clear()
Clears receiver (zero size).
void giveInternalForcesVector_u(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
virtual void updateYourself(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
StructuralInterfaceElementPhF(int n, Domain *d)
Constructor.
Base class for dof managers.
virtual double computeAreaAround(GaussPoint *gp)=0
virtual void computeBd_matrixAt(GaussPoint *, FloatMatrix &)
virtual double giveDrivingForce(GaussPoint *gp)
Class implementing an array of integers.
int & at(int i)
Coefficient access function.
MatResponseMode
Describes the character of characteristic material matrix.
void computeDamageUnknowns(FloatArray &answer, ValueModeType valueMode, TimeStep *stepN)
virtual int giveNumberOfDofManagers() const
void rotatedWith(FloatMatrix &r, char mode)
Returns the receiver a rotated according the change-of-base matrix r.
virtual void computeLocationArrayOfDofIDs(const IntArray &dofIdArray, IntArray &answer)
virtual FEInterpolation * giveInterpolation() const
int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
void plusProductUnsym(const FloatMatrix &a, const FloatMatrix &b, double dV)
Adds to the receiver the product .
virtual void getLocationArray_d(IntArray &answer)=0
virtual void updateYourself(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
int activityTimeFunction
Element activity time function. If defined, nonzero value indicates active receiver, zero value inactive element.
virtual void computeNmatrixAt(GaussPoint *gp, FloatMatrix &answer)=0
Computes modified interpolation matrix (N) for the element which multiplied with the unknowns vector ...
int giveNumberOfDofs() const
double dotProduct(const FloatArray &x) const
Computes the dot product (or inner product) of receiver and argument.
DofIDItem
Type representing particular dof type.
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
Computes the stiffness/tangent matrix of receiver.
FloatArray initialDisplacements
Initial displacement vector, describes the initial nodal displacements when element has been casted...
void rotatedWith(const FloatMatrix &r, char mode= 'n')
Returns the receiver 'a' transformed using give transformation matrix r.
Wrapper around element definition to provide FEICellGeometry interface.
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Check for symmetry of stiffness matrix.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
double giveInternalLength()
void computeStiffnessMatrix_uu(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
void plusProductSymmUpper(const FloatMatrix &a, const FloatMatrix &b, double dV)
Adds to the receiver the product .
virtual void updateInternalState(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
void beTProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix^T and anArray.
void resize(int n)
Checks size of receiver towards requested bounds.
void computeDisplacementUnknowns(FloatArray &answer, ValueModeType valueMode, TimeStep *stepN)
void computeStiffnessMatrix_ud(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
void computeStiffnessMatrix_dd(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
void beNMatrixOf(const FloatArray &n, int nsd)
Assigns the receiver to be a repeated diagonal matrix.
virtual void giveStiffnessMatrix_Eng(FloatMatrix &answer, MatResponseMode rMode, IntegrationPoint *ip, TimeStep *tStep)
Class representing vector of real numbers.
bool hasDofID(DofIDItem id) const
Checks if receiver contains dof with given ID.
Implementation of matrix containing floating point numbers.
void assemble(const FloatArray &fe, const IntArray &loc)
Assembles the array fe (typically, the load vector of a finite element) into the receiver, using loc as location array.
virtual void giveDofManDofIDMask_d(IntArray &answer)=0
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
void followedBy(const IntArray &b, int allocChunk=0)
Appends array b at the end of receiver.
void zero()
Zeroes all coefficients of receiver.
void setColumn(const FloatArray &src, int c)
Sets the values of the matrix in specified column.
virtual void computeSpatialJump(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
void beProductTOf(const FloatMatrix &a, const FloatMatrix &b)
Assigns to the receiver product of .
void zero()
Zeroes all coefficient of receiver.
virtual double giveDrivingForcePrime(GaussPoint *gp)
Abstract base class for all structural interface elements.
void beProductOf(const FloatMatrix &a, const FloatMatrix &b)
Assigns to the receiver product of .
int giveSize() const
Returns the size of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
DofManager * giveDofManager(int i) const
void assemble(const FloatMatrix &src, const IntArray &loc)
Assembles the contribution using localization array into receiver.
void clear()
Sets size of receiver to be an empty matrix. It will have zero rows and zero columns size...
void symmetrized()
Initializes the lower half of the receiver according to the upper half.
Class representing integration point in finite element program.
Class representing solution step.
virtual ~StructuralInterfaceElementPhF()
Destructor.
void add(const FloatArray &src)
Adds array src to receiver.
virtual void giveDofManDofIDMask_u(IntArray &answer)=0
void giveInternalForcesVector_d(FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord=0)
const FloatArray & giveNaturalCoordinates()
Returns coordinate array of receiver.
StructuralInterfaceCrossSection * giveInterfaceCrossSection()
void resize(int s)
Resizes receiver towards requested size.
void plusProduct(const FloatMatrix &b, const FloatArray &s, double dV)
Adds the product .