62 if ( norm < 1.0e-8 ) {
63 OOFEM_ERROR(
"Couldn't compute normal between master node (num %d) and slave node (num %d), nodes are too close to each other.",
99 answer = { normal.
at(1), normal.
at(2), normal.
at(3),
100 -normal.
at(1), -normal.
at(2), -normal.
at(3) };
109 if ( gap.
at(1) < 0.0 ) {
110 t = this->
epsN * gap;
125 if ( gap.
at(1) < 0.0 ) {
134 answer = t.
at(1) * this->
area * C;
156 if( gap.
at(1) > 0.0 ) {
174 for (
int i = 1; i <= dofIdArray.
giveSize(); i++ ) {
182 for (
int i = 1; i <= dofIdArray.
giveSize(); i++ ) {
242 answer.
resize( C.giveSize() + 1);
244 if( gap.
at(1) < 0.0 ) {
246 answer.
at( C.giveSize() + 1 ) = -gap.
at(1);
260 if ( gap.
at(1) < 0.0 ) {
274 for (
int i = 1; i <= 7; i++ ) {
275 answer.
at(i,i) += 1.0e-8;
285 if ( gap.
at(1) < 0.0 ) {
288 t = {lambda, 0.0, 0.0};
int SetUpPoint(MaterialMode mode)
Trivial implementation, only creates a single point.
int giveGlobalNumber() const
void zero()
Sets all component to zero.
double & at(int i)
Coefficient access function.
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
void clear()
Clears receiver (zero size).
virtual FloatArray * giveCoordinates()
virtual double giveUnknown(ValueModeType mode, TimeStep *tStep)=0
The key method of class Dof.
Base class for dof managers.
void negated()
Changes sign of receiver values.
Class representing the abstraction for input data source.
Class implementing an array of integers.
int & at(int i)
Coefficient access function.
virtual int giveDofEquationNumber(Dof *dof) const =0
Returns the equation number for corresponding DOF.
void giveUnknownVector(FloatArray &answer, const IntArray &dofMask, ValueModeType mode, TimeStep *tStep, bool padding=false)
Assembles the vector of unknowns in global c.s for given dofs of receiver.
double dotProduct(const FloatArray &x) const
Computes the dot product (or inner product) of receiver and argument.
DofIDItem
Type representing particular dof type.
void times(double f)
Multiplies receiver by factor f.
Abstract base class allowing to control the way, how equations are assigned to individual DOFs...
void addSubVector(const FloatArray &src, int si)
Adds the given vector as sub-vector to receiver.
double at(int i, int j) const
Coefficient access function.
void resize(int n)
Checks size of receiver towards requested bounds.
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.
GaussPoint * getIntegrationPoint(int n)
Access particular integration point of receiver.
void addSubVectorCol(const FloatArray &src, int sr, int sc)
Adds given vector to receiver starting at given position.
double norm(const FloatArray &x)
double computeNorm() const
Computes the norm (or length) of the vector.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
Dof * giveDofWithID(int dofID) const
Returns DOF with given dofID; issues error if not present.
void followedBy(const IntArray &b, int allocChunk=0)
Appends array b at the end of receiver.
void zero()
Zeroes all coefficients of receiver.
void beDyadicProductOf(const FloatArray &vec1, const FloatArray &vec2)
Assigns to the receiver the dyadic product .
void times(double s)
Multiplies receiver with scalar.
void zero()
Zeroes all coefficient of receiver.
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.
Abstract class Dof represents Degree Of Freedom in finite element mesh.
void addSubVectorRow(const FloatArray &src, int sr, int sc)
Adds given vector to receiver starting at given position.
Class representing integration point in finite element program.
Class representing solution step.
void add(const FloatArray &src)
Adds array src to receiver.
Class representing Gaussian-quadrature integration rule.
void resize(int s)
Resizes receiver towards requested size.