OOFEM 3.0
Loading...
Searching...
No Matches
oofem::MixedGradientPressureBC Class Referenceabstract

#include <mixedgradientpressurebc.h>

Inheritance diagram for oofem::MixedGradientPressureBC:
Collaboration diagram for oofem::MixedGradientPressureBC:

Public Member Functions

 MixedGradientPressureBC (int n, Domain *d)
virtual ~MixedGradientPressureBC ()
 Destructor.
bcType giveType () const override
 Not relevant for this boundary condition.
void initializeFrom (InputRecord &ir) override
double domainSize ()
virtual void computeFields (FloatArray &stressDev, double &vol, TimeStep *tStep)=0
virtual void computeTangents (FloatMatrix &Ed, FloatArray &Ep, FloatArray &Cd, double &Cp, TimeStep *tStep)=0
virtual void setPrescribedPressure (double p)=0
virtual void setPrescribedDeviatoricGradientFromVoigt (const FloatArray &ddev)=0
Public Member Functions inherited from oofem::ActiveBoundaryCondition
 ActiveBoundaryCondition (int n, Domain *d)
virtual ~ActiveBoundaryCondition ()
 Destructor.
virtual void addElementSide (int elem, int side)
virtual void assemble (SparseMtrx &answer, TimeStep *tStep, CharType type, const UnknownNumberingScheme &r_s, const UnknownNumberingScheme &c_s, double scale=1.0, void *lock=nullptr)
virtual void assembleVector (FloatArray &answer, TimeStep *tStep, CharType type, ValueModeType mode, const UnknownNumberingScheme &s, FloatArray *eNorms=nullptr, void *lock=nullptr)
virtual void giveLocationArrays (std ::vector< IntArray > &rows, std ::vector< IntArray > &cols, CharType type, const UnknownNumberingScheme &r_s, const UnknownNumberingScheme &c_s)
virtual bool requiresActiveDofs ()
virtual bool isPrimaryDof (ActiveDof *dof)
virtual double giveBcValue (Dof *dof, ValueModeType mode, TimeStep *tStep)
virtual bool hasBc (Dof *dof, TimeStep *tStep)
virtual int giveNumberOfMasterDofs (ActiveDof *dof)
virtual DofgiveMasterDof (ActiveDof *dof, int mdof)
virtual void computeDofTransformation (ActiveDof *dof, FloatArray &masterContribs)
virtual double giveUnknown (PrimaryField &field, ValueModeType mode, TimeStep *tStep, ActiveDof *dof)
virtual double giveUnknown (ValueModeType mode, TimeStep *tStep, ActiveDof *dof)
Public Member Functions inherited from oofem::GeneralBoundaryCondition
 GeneralBoundaryCondition (int n, Domain *d)
virtual ~GeneralBoundaryCondition ()
 Destructor.
int giveSetNumber () const
virtual int giveNumberOfInternalDofManagers ()
 Gives the number of internal dof managers.
virtual DofManagergiveInternalDofManager (int i)
 Gives an internal dof manager from receiver.
FunctiongiveTimeFunction ()
int getIsImposedTimeFunctionNumber () const
void setIsImposedTimeFunctionNumber (int funcIndx)
virtual bcValType giveBCValType () const
virtual bool isImposed (TimeStep *tStep)
virtual const IntArraygiveDofIDs () const
virtual bcGeomType giveBCGeoType () const
virtual void scale (double s)
virtual double giveProperty (int aProperty, TimeStep *tStep) const
void giveInputRecord (DynamicInputRecord &input) override
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
virtual void updateYourself (TimeStep *tStep)
Public Member Functions inherited from oofem::FEMComponent
 FEMComponent (int n, Domain *d)
virtual ~FEMComponent ()=default
 Virtual destructor.
virtual const char * giveClassName () const =0
virtual const char * giveInputRecordName () const =0
DomaingiveDomain () const
virtual void setDomain (Domain *d)
int giveNumber () const
void setNumber (int num)
virtual void updateLocalNumbering (EntityRenumberingFunctor &f)
virtual void initializeFrom (InputRecord &ir, int priority)
virtual void initializeFinish ()
virtual void postInitialize ()
 Performs post initialization steps. Called after all components are created and initialized.
virtual int checkConsistency ()
virtual void printOutputAt (FILE *file, TimeStep *tStep)
virtual void printYourself ()
 Prints receiver state on stdout. Useful for debugging.
virtual InterfacegiveInterface (InterfaceType t)
std::string errorInfo (const char *func) const
 Returns string for prepending output (used by error reporting macros).

Additional Inherited Members

Protected Attributes inherited from oofem::GeneralBoundaryCondition
int timeFunction
 Associated load time function.
bcValType valType
 Physical meaning of BC value.
IntArray dofs
 Dofs that b.c. is applied to (relevant for Dirichlet type b.c.s).
int isImposedTimeFunction
int set
 Set number for boundary condition to be applied to.
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Detailed Description

General class for boundary condition that prolongates macroscopic fields to incompressible flow. Both the deviatoric strain rate, and the pressure is controlled.

See also
MixedGradientPressureDirichlet For implementation of Dirichlet type
MixedGradientPressureNeumann For implementation of Neumann type
Author
Mikael Öhman

Definition at line 58 of file mixedgradientpressurebc.h.

Constructor & Destructor Documentation

◆ MixedGradientPressureBC()

oofem::MixedGradientPressureBC::MixedGradientPressureBC ( int n,
Domain * d )
inline

Creates boundary condition with given number, belonging to given domain.

Parameters
nBoundary condition number.
dDomain to which new object will belongs.

Definition at line 66 of file mixedgradientpressurebc.h.

References oofem::ActiveBoundaryCondition::ActiveBoundaryCondition().

Referenced by oofem::MixedGradientPressureDirichlet::MixedGradientPressureDirichlet(), oofem::MixedGradientPressureNeumann::MixedGradientPressureNeumann(), and oofem::MixedGradientPressureWeakPeriodic::MixedGradientPressureWeakPeriodic().

◆ ~MixedGradientPressureBC()

virtual oofem::MixedGradientPressureBC::~MixedGradientPressureBC ( )
inlinevirtual

Destructor.

Definition at line 69 of file mixedgradientpressurebc.h.

Member Function Documentation

◆ computeFields()

virtual void oofem::MixedGradientPressureBC::computeFields ( FloatArray & stressDev,
double & vol,
TimeStep * tStep )
pure virtual

Computes the homogenized fields through sensitivity analysis.

Parameters
[out]stressDevComputes the homogenized deviatoric stress.
[out]volComputes the homogenized volumetric gradient.
tStepTime step for which field to obtain.

Implemented in oofem::MixedGradientPressureDirichlet, oofem::MixedGradientPressureNeumann, and oofem::MixedGradientPressureWeakPeriodic.

Referenced by oofem::FE2FluidMaterial::computeDeviatoricStress3D().

◆ computeTangents()

virtual void oofem::MixedGradientPressureBC::computeTangents ( FloatMatrix & Ed,
FloatArray & Ep,
FloatArray & Cd,
double & Cp,
TimeStep * tStep )
pure virtual

Computes the macroscopic tangents through sensitivity analysis.

Parameters
[out]EdTangent \( \frac{\partial \sigma_{\mathrm{dev}}}{\partial d_{\mathrm{dev}}} \).
[out]EpTangent \( \frac{\partial \sigma_{\mathrm{dev}}}{\partial p} \).
[out]CdTangent \( \frac{\partial d_{\mathrm{vol}}}{\partial d_{\mathrm{dev}}} \).
[out]CpTangent \( \frac{\partial d_{\mathrm{vol}}}{\partial p} \).
tStepTime step for the tangents.

Implemented in oofem::MixedGradientPressureDirichlet, oofem::MixedGradientPressureNeumann, and oofem::MixedGradientPressureWeakPeriodic.

◆ domainSize()

◆ giveType()

bcType oofem::MixedGradientPressureBC::giveType ( ) const
inlineoverridevirtual

Not relevant for this boundary condition.

Reimplemented from oofem::GeneralBoundaryCondition.

Reimplemented in oofem::MixedGradientPressureNeumann, and oofem::MixedGradientPressureWeakPeriodic.

Definition at line 72 of file mixedgradientpressurebc.h.

References oofem::UnknownBT.

◆ initializeFrom()

void oofem::MixedGradientPressureBC::initializeFrom ( InputRecord & ir)
overridevirtual

Initializes receiver according to object description stored in input record. The input record contains two fields;

  • devGradient #columns { d_11 d_22 ... d_21 ... } (required)
  • pressure p (required) The gradient should be deviatoric and in Voigt notation. The prescribed tensor's columns must be equal to the size of the center coordinates. The size of the center coordinates must be equal to the size of the coordinates in the applied nodes.

Reimplemented from oofem::ActiveBoundaryCondition.

Reimplemented in oofem::MixedGradientPressureDirichlet, oofem::MixedGradientPressureNeumann, and oofem::MixedGradientPressureWeakPeriodic.

Definition at line 61 of file mixedgradientpressurebc.C.

References _IFT_MixedGradientPressure_devGradient, _IFT_MixedGradientPressure_pressure, IR_GIVE_FIELD, setPrescribedDeviatoricGradientFromVoigt(), and setPrescribedPressure().

◆ setPrescribedDeviatoricGradientFromVoigt()

virtual void oofem::MixedGradientPressureBC::setPrescribedDeviatoricGradientFromVoigt ( const FloatArray & ddev)
pure virtual

Sets the prescribed tensor from the matrix from given Voigt notation. Assumes use of double values (gamma) for off-diagonal, usually the way for strain in Voigt form.

Parameters
ddevVector in Voigt format.

Implemented in oofem::MixedGradientPressureDirichlet, oofem::MixedGradientPressureNeumann, and oofem::MixedGradientPressureWeakPeriodic.

Referenced by oofem::FE2FluidMaterial::computeDeviatoricStress3D(), and initializeFrom().

◆ setPrescribedPressure()

virtual void oofem::MixedGradientPressureBC::setPrescribedPressure ( double p)
pure virtual

The documentation for this class was generated from the following files:

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011