96 const FloatArray &lcoords = gp->giveNaturalCoordinates();
110 if ( mtrx == ExternalForcesVector ) {
112 }
else if ( mtrx == InternalForcesVector ) {
115 OOFEM_ERROR(
"Unknown Type of characteristic mtrx.");
132 const FloatArray &lcoords = gp->giveNaturalCoordinates();
144 answer.
plusProduct(B, w, -gp->giveWeight() * detJ);
158 int load_number, load_id;
164 for (
int i = 1; i <= nLoads; i++ ) {
195 numberOfEdgeIPs = ( int ) ceil( ( boundaryLoad->
giveApproxOrder() + 1. ) / 2. ) * 2;
200 reducedAnswer.
zero();
206 const FloatArray &lcoords = gp->giveNaturalCoordinates();
218 reducedAnswer.
add(loadValue.
at(1) * dV,
N);
222 answer.
assemble(reducedAnswer, mask);
234 double thickness = 1;
244 if ( mtrx == ConductivityMatrix || mtrx == TangentStiffnessMatrix ) {
247 OOFEM_ERROR(
"Unknown Type of characteristic mtrx %d", mtrx);
virtual void edgeLocal2global(FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates edge global coordinates from given local ones.
CrossSection * giveCrossSection()
virtual void edgeEvalN(FloatArray &answer, int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the array of edge interpolation functions (shape functions) at given point.
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
The element interface required by NodalAvergagingRecoveryModel.
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
void computeEdgeBCSubVectorAt(FloatArray &answer, Load *load, int iEdge, TimeStep *tStep, ValueModeType mode, int indx)
virtual double evaldNdx(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)
Evaluates the array of interpolation functions (shape functions) at given point.
void computeVectorOf(ValueModeType u, TimeStep *tStep, FloatArray &answer)
Returns local vector of unknowns.
Domain * domain
Link to domain object, useful for communicating with other FEM components.
virtual void computeLocalEdgeMapping(IntArray &edgeNodes, int iedge)
const FloatArray & giveSubPatchCoordinates()
Returns local sub-patch coordinates of the receiver.
bcGeomType
Type representing the geometric character of loading.
double & at(int i)
Coefficient access function.
virtual void computeExternalForcesVector(FloatArray &answer, TimeStep *tStep, ValueModeType mode)
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
virtual double giveThicknessAt(const FloatArray &gcoords)
Gives the thickness at some global coordinate.
virtual double edgeGiveTransformationJacobian(int iedge, const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the edge Jacobian of transformation between local and global coordinates.
Class implementing an array of integers.
int & at(int i)
Coefficient access function.
MatResponseMode
Describes the character of characteristic material matrix.
virtual bcType giveType() const
Base abstract class representing cross section in finite element mesh.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Class representing a general abstraction for finite element interpolation class.
void plusProductUnsym(const FloatMatrix &a, const FloatMatrix &b, double dV)
Adds to the receiver the product .
Abstract base class representing a boundary load (force, momentum, ...) that acts directly on a bound...
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep)
double dotProduct(const FloatArray &x) const
Computes the dot product (or inner product) of receiver and argument.
virtual double computeEdgeVolumeAround(GaussPoint *gp, int iEdge)
Computes the length around a integration point on a edge.
virtual double giveWeight()
Returns integration weight of receiver.
virtual FEInterpolation * giveInterpolation() const
virtual FormulationType giveFormulationType()
Specifies is load should take local or global coordinates.
This abstract class represent a general base element class for transport problems.
Neumann type (prescribed flux).
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
Wrapper around element definition to provide FEICellGeometry interface.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
virtual int giveApproxOrder()=0
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
virtual int setupIntegrationPoints(IntegrationRule &irule, int npoints, Element *element)
Sets up integration rule for the given element.
int numberOfGaussPoints
Number of integration points as specified by nip.
virtual Interface * giveInterface(InterfaceType interface)
Interface requesting service.
Class representing vector of real numbers.
virtual void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep)
Computes characteristic matrix of receiver of requested type in given time step.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual double give(CrossSectionProperty a, GaussPoint *gp)
Returns the value of cross section property at given point.
virtual int giveIPValue(FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
virtual double giveTransformationJacobian(const FloatArray &lcoords, const FEICellGeometry &cellgeo)
Evaluates the determinant of the transformation.
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 computeInternalForcesVector(FloatArray &answer, TimeStep *tStep)
void zero()
Zeroes all coefficients of receiver.
virtual bcGeomType giveBCGeoType() const
Returns geometry character of boundary condition.
Abstract base class for all constitutive models for transport problems.
void beTranspositionOf(const FloatMatrix &src)
Assigns to the receiver the transposition of parameter.
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
virtual void giveCharacteristicMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)=0
Computes characteristic matrix of receiver in given integration point.
InterfaceType
Enumerative type, used to identify interface type.
Load is base abstract class for all loads.
void beProductOf(const FloatMatrix &a, const FloatMatrix &b)
Assigns to the receiver product of .
virtual void giveFluxVector(FloatArray &answer, GaussPoint *gp, const FloatArray &grad, const FloatArray &field, TimeStep *tStep)=0
Returns the flux for the field and its gradient.
the oofem namespace is to define a context or scope in which all oofem names are defined.
void clear()
Sets size of receiver to be an empty matrix. It will have zero rows and zero columns size...
void negated()
Switches the sign of every coefficient of receiver.
static FEI2dTrLin interpolation_lin
virtual Material * giveMaterial()
virtual void computeValueAt(FloatArray &answer, TimeStep *tStep, const FloatArray &coords, ValueModeType mode)
Computes components values of load at given point - global coordinates (coordinates given)...
Load * giveLoad(int n)
Service for accessing particular domain load.
virtual int SetUpPointsOnLine(int nPoints, MaterialMode mode)
Sets up receiver's integration points on unit line integration domain.
virtual void NodalAveragingRecoveryMI_computeNodalValue(FloatArray &answer, int node, InternalStateType type, TimeStep *tStep)
Computes the element value in given node.
Class representing integration point in finite element program.
IntArray boundaryLoadArray
Class representing solution step.
int numberOfDofMans
Number of dofmanagers.
void add(const FloatArray &src)
Adds array src to receiver.
virtual void giveCharacteristicVector(FloatArray &answer, CharType mtrx, ValueModeType mode, TimeStep *tStep)
Computes characteristic vector of receiver of requested type in given time step.
Class representing Gaussian-quadrature integration rule.
void resize(int s)
Resizes receiver towards requested size.
void plusProduct(const FloatMatrix &b, const FloatArray &s, double dV)
Adds the product .