61SUPGElement :: SUPGElement(
int n,
Domain *aDomain) :
69 FMElement :: initializeFrom(ir, priority);
86 FMElement :: giveInputRecord(input);
102 if ( type == TangentStiffnessMatrix ) {
112 answer.
resize(size, size);
136 h.
times( 1.0 / ( dscale * uscale ) );
148 OOFEM_ERROR(
"giveCharacteristicMatrix: Unknown Type of characteristic mtrx.");
161 if ( mtrx == ExternalForcesVector ) {
181 else if ( mtrx == InternalForcesVector ) {
225 OOFEM_ERROR(
"Unknown Type of characteristic mtrx.");
243 for (
int i = 1; i <= nLoads; i++ ) {
250 answer.
add(helpMatrix);
253 answer.
add(helpMatrix);
264 for (
int i = 1; i <= nLoads; i++ ) {
269 answer.
add(helpMatrix);
288 for (
int i = 1; i <= nLoads; i++ ) {
295 answer.
add(helpMatrix);
314 for (
int i = 1; i <= nLoads; i++ ) {
319 answer.
add(helpMatrix);
327SUPGElement :: checkConsistency()
345 for (
auto &gp: *iRule ) {
361 if ( type == IST_Velocity ) {
363 std::vector< Dof* >::const_iterator dofindx;
365 answer.
at(indx++) = (*dofindx)->giveUnknown(VM_Total, tStep);
367 answer.
at(indx++) = (*dofindx)->giveUnknown(VM_Total, tStep);
369 answer.
at(indx++) = (*dofindx)->giveUnknown(VM_Total, tStep);
373 }
else if ( type == IST_Pressure ) {
375 if ( dofindx != n->
end() ) {
377 answer.
at(1) = (*dofindx)->giveUnknown(VM_Total, tStep);
383 return Element :: giveInternalStateAtNode(answer, type, mode, node, tStep);
std::vector< Dof * >::const_iterator findDofWithDofId(DofIDItem dofID) const
std::vector< Dof * >::iterator end()
Node * giveNode(int i) const
IntArray boundaryLoadArray
virtual int giveSpatialDimension()
virtual int computeNumberOfDofs()
IntArray * giveBodyLoadArray()
Returns array containing load numbers of loads acting on element.
IntArray * giveBoundaryLoadArray()
Returns array containing load numbers of boundary loads acting on element.
std::vector< std ::unique_ptr< IntegrationRule > > integrationRulesArray
Domain * giveDomain() const
Domain * domain
Link to domain object, useful for communicating with other FEM components.
int number
Component number.
void computeVectorOfPressures(ValueModeType mode, TimeStep *tStep, FloatArray &pressures)
void computeVectorOfVelocities(ValueModeType mode, TimeStep *tStep, FloatArray &velocities)
FMElement(int n, Domain *aDomain)
void assemble(const FloatArray &fe, const IntArray &loc)
void zero()
Zeroes all coefficients of receiver.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
void add(const FloatMatrix &a)
void resize(Index rows, Index cols)
*Sets size of receiver to be an empty matrix It will have zero rows and zero columns size void clear()
void zero()
Zeroes all coefficient of receiver.
bool isNotEmpty() const
Tests for empty matrix.
void assemble(const FloatMatrix &src, const IntArray &loc)
virtual bcGeomType giveBCGeoType() const
virtual bcValType giveBCValType() const
virtual bcType giveType() const
static ParamKey IPK_SUPGElement_bsides
virtual void computeDiffusionDerivativeTerm_MB(FloatMatrix &answer, MatResponseMode mode, TimeStep *tStep)=0
virtual void giveLocalPressureDofMap(IntArray &map)
virtual void computeBCLhsPressureTerm_MB(FloatMatrix &answer, TimeStep *tStep)
virtual void computeDeviatoricStrain(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)=0
virtual void computeAdvectionTerm_MC(FloatArray &answer, TimeStep *tStep)=0
virtual void computeHomogenizedReinforceTerm_MC(FloatMatrix &answer, Load *load, TimeStep *tStep)
virtual void computeDiffusionTerm_MB(FloatArray &answer, TimeStep *tStep)=0
virtual void computeDiffusionDerivativeTerm_MC(FloatMatrix &answer, TimeStep *tStep)=0
virtual void computeLinearAdvectionTerm_MC(FloatMatrix &answer, TimeStep *tStep)=0
virtual void computeBCLhsTerm_MB(FloatMatrix &answer, TimeStep *tStep)
virtual void computeBCLhsPressureTerm_MC(FloatMatrix &answer, TimeStep *tStep)
IntArray boundaryCodes
Boundary sides codes.
virtual void computeDeviatoricStress(FloatArray &answer, const FloatArray &eps, GaussPoint *gp, TimeStep *tStep)=0
virtual void computeDiffusionTerm_MC(FloatArray &answer, TimeStep *tStep)=0
static ParamKey IPK_SUPGElement_bcodes
virtual void giveLocalVelocityDofMap(IntArray &map)
virtual void computeBCRhsTerm_MB(FloatArray &answer, TimeStep *tStep)=0
virtual void computePressureTerm_MC(FloatMatrix &answer, TimeStep *tStep)=0
virtual void computePressureTerm_MB(FloatMatrix &answer, TimeStep *tStep)=0
virtual void computeBCRhsTerm_MC(FloatArray &answer, TimeStep *tStep)=0
IntArray boundarySides
Array of boundary sides.
virtual void computeSlipWithFrictionBCTerm_MB(FloatMatrix &answer, Load *load, int side, TimeStep *tStep)
virtual void computeHomogenizedReinforceTerm_MB(FloatMatrix &answer, Load *load, TimeStep *tStep)
virtual void computePenetrationWithResistanceBCTerm_MB(FloatMatrix &answer, Load *load, int side, TimeStep *tStep)
virtual void computeOutFlowBCTerm_MB(FloatMatrix &answer, int side, TimeStep *tStep)
bcGeomType
Type representing the geometric character of loading.
@ BodyLoadBGT
Distributed body load.
InternalStateMode
Determines the mode of internal variable.
bcType
Type representing the type of bc.
@ PenetrationWithResistance
#define PM_UPDATE_PARAMETER_AND_REPORT(_val, _pm, _ir, _componentnum, _paramkey, _prio, _flag)