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

#include <fluiddynamicmaterial.h>

Inheritance diagram for oofem::FluidDynamicMaterial:
Collaboration diagram for oofem::FluidDynamicMaterial:

Classes

struct  Tangents

Public Member Functions

 FluidDynamicMaterial (int n, Domain *d)
virtual std::pair< FloatArrayF< 6 >, double > computeDeviatoricStress3D (const FloatArrayF< 6 > &eps, double pressure, GaussPoint *gp, TimeStep *tStep) const
virtual std::pair< FloatArrayF< 3 >, double > computeDeviatoricStress2D (const FloatArrayF< 3 > &eps, double pressure, GaussPoint *gp, TimeStep *tStep) const
virtual FloatArrayF< 6 > computeDeviatoricStress3D (const FloatArrayF< 6 > &eps, GaussPoint *gp, TimeStep *tStep) const =0
virtual FloatArrayF< 3 > computeDeviatoricStress2D (const FloatArrayF< 3 > &eps, GaussPoint *gp, TimeStep *tStep) const
virtual FloatArrayF< 4 > computeDeviatoricStressAxi (const FloatArrayF< 4 > &eps, GaussPoint *gp, TimeStep *tStep) const
virtual FloatMatrixF< 6, 6 > computeTangent3D (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const =0
virtual FloatMatrixF< 3, 3 > computeTangent2D (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
virtual FloatMatrixF< 4, 4 > computeTangentAxi (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
virtual Tangents< 6 > computeTangents3D (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
virtual Tangents< 3 > computeTangents2D (MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
virtual double giveEffectiveViscosity (GaussPoint *gp, TimeStep *tStep) const =0
int giveIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
Public Member Functions inherited from oofem::Material
 Material (int n, Domain *d)
virtual ~Material ()=default
 Destructor.
virtual bool isCharacteristicMtrxSymmetric (MatResponseMode rMode) const
virtual void giveCharacteristicMatrix (FloatMatrix &answer, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
 Returns characteristic matrix of the receiver.
virtual void giveCharacteristicVector (FloatArray &answer, FloatArray &flux, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
 Returns characteristic vector of the receiver.
virtual double giveCharacteristicValue (MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
 Returns characteristic value of the receiver.
virtual double give (int aProperty, GaussPoint *gp) const
virtual bool hasProperty (int aProperty, GaussPoint *gp) const
virtual void modifyProperty (int aProperty, double value, GaussPoint *gp)
double giveCastingTime () const
virtual bool isActivated (TimeStep *tStep) const
virtual bool hasMaterialModeCapability (MaterialMode mode) const
virtual bool hasCastingTimeSupport () const
virtual int setIPValue (const FloatArray &value, GaussPoint *gp, InternalStateType type)
void initializeFrom (InputRecord &ir) override
void giveInputRecord (DynamicInputRecord &input) override
void printYourself () override
 Prints receiver state on stdout. Useful for debugging.
virtual void saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
virtual void restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp)
int checkConsistency () override
virtual void restoreConsistency (GaussPoint *gp)
virtual int initMaterial (Element *element)
virtual MaterialStatusgiveStatus (GaussPoint *gp) const
virtual int packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip)
virtual int unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip)
virtual int estimatePackSize (DataStream &buff, GaussPoint *ip)
virtual double predictRelativeComputationalCost (GaussPoint *gp)
virtual double predictRelativeRedistributionCost (GaussPoint *gp)
virtual std::unique_ptr< MaterialStatusCreateStatus (GaussPoint *gp) const
virtual void initTempStatus (GaussPoint *gp) const
void saveContext (DataStream &stream, ContextMode mode) override
void restoreContext (DataStream &stream, ContextMode mode) override
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 void printOutputAt (FILE *file, TimeStep *tStep)
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::Material
Dictionary propertyDictionary
double castingTime
int preCastingTimeMat
 Material existing before casting time - optional parameter, zero by default.
Protected Attributes inherited from oofem::FEMComponent
int number
 Component number.
Domaindomain
 Link to domain object, useful for communicating with other FEM components.

Detailed Description

Abstract base class for all fluid materials. The fluid materials can have compressible response, though most will be incompressible. The models are characterized by having deviatoric strain rate, and pressure as input at each integration point.

Definition at line 92 of file fluiddynamicmaterial.h.

Constructor & Destructor Documentation

◆ FluidDynamicMaterial()

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

Member Function Documentation

◆ computeDeviatoricStress2D() [1/2]

std::pair< FloatArrayF< 3 >, double > oofem::FluidDynamicMaterial::computeDeviatoricStress2D ( const FloatArrayF< 3 > & eps,
double pressure,
GaussPoint * gp,
TimeStep * tStep ) const
virtual

◆ computeDeviatoricStress2D() [2/2]

FloatArrayF< 3 > oofem::FluidDynamicMaterial::computeDeviatoricStress2D ( const FloatArrayF< 3 > & eps,
GaussPoint * gp,
TimeStep * tStep ) const
virtual

Definition at line 63 of file fluiddynamicmaterial.C.

References oofem::assemble(), and computeDeviatoricStress3D().

◆ computeDeviatoricStress3D() [1/2]

std::pair< FloatArrayF< 6 >, double > oofem::FluidDynamicMaterial::computeDeviatoricStress3D ( const FloatArrayF< 6 > & eps,
double pressure,
GaussPoint * gp,
TimeStep * tStep ) const
virtual

Computes the deviatoric stress vector and volumetric strain rate from given deviatoric strain and pressure. Defaults to incompressible function.

Parameters
gpIntegration point.
epsStrain-rate.
pressurePressure.
tStepTime step.
Returns
Deviatoric stress and volumetric strain-rate (minus the volumetric part of the eps argument).

Reimplemented in oofem::FE2FluidMaterial.

Definition at line 43 of file fluiddynamicmaterial.C.

References computeDeviatoricStress3D().

Referenced by computeDeviatoricStress2D(), computeDeviatoricStress2D(), computeDeviatoricStress3D(), computeDeviatoricStressAxi(), oofem::Hexa21Stokes::computeInternalForcesVector(), oofem::Tet1BubbleStokes::computeInternalForcesVector(), oofem::Tet21Stokes::computeInternalForcesVector(), oofem::tet21ghostsolid::computeStiffnessMatrix(), oofem::tet21ghostsolid::giveInternalForcesVectorGivenSolution(), oofem::tet21ghostsolid::giveInternalForcesVectorGivenSolutionDebug(), and oofem::FluidMaterialEvaluator::solveYourself().

◆ computeDeviatoricStress3D() [2/2]

virtual FloatArrayF< 6 > oofem::FluidDynamicMaterial::computeDeviatoricStress3D ( const FloatArrayF< 6 > & eps,
GaussPoint * gp,
TimeStep * tStep ) const
pure virtual

Computes the deviatoric stress vector from given strain.

Parameters
answerDeviatoric stress.
gpIntegration point.
epsStrain-rate.
tStepTime step.

Implemented in oofem::BinghamFluidMaterial2, oofem::FE2FluidMaterial, oofem::NewtonianFluidMaterial, oofem::NonlinearFluidMaterial, and oofem::TwoFluidMaterial.

◆ computeDeviatoricStressAxi()

FloatArrayF< 4 > oofem::FluidDynamicMaterial::computeDeviatoricStressAxi ( const FloatArrayF< 4 > & eps,
GaussPoint * gp,
TimeStep * tStep ) const
virtual

◆ computeTangent2D()

FloatMatrixF< 3, 3 > oofem::FluidDynamicMaterial::computeTangent2D ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
virtual

Definition at line 79 of file fluiddynamicmaterial.C.

References computeTangent3D().

Referenced by oofem::PFEMElement2d::computeStiffnessMatrix().

◆ computeTangent3D()

virtual FloatMatrixF< 6, 6 > oofem::FluidDynamicMaterial::computeTangent3D ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
pure virtual

Computes the deviatoric stiffness; \( \frac{\partial\sigma_{\mathrm{dev}}}{\partial \epsilon_{\mathrm{dev}}}\).

Parameters
answerStiffness matrix.
modeMode of result.
gpIntegration point.
tStepTime step.

Implemented in oofem::BinghamFluidMaterial2, oofem::FE2FluidMaterial, oofem::NewtonianFluidMaterial, oofem::NonlinearFluidMaterial, and oofem::TwoFluidMaterial.

Referenced by oofem::tet21ghostsolid::computeStiffnessMatrix(), computeTangent2D(), computeTangentAxi(), and computeTangents3D().

◆ computeTangentAxi()

FloatMatrixF< 4, 4 > oofem::FluidDynamicMaterial::computeTangentAxi ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
virtual

◆ computeTangents2D()

◆ computeTangents3D()

FluidDynamicMaterial::Tangents< 6 > oofem::FluidDynamicMaterial::computeTangents3D ( MatResponseMode mode,
GaussPoint * gp,
TimeStep * tStep ) const
virtual

Computes the 4 tangents of the compressible material response in 3D.

  • dsdd \( \frac{\partial\sigma_{\mathrm{dev}}}{\partial \epsilon_{\mathrm{dev}}}\).
  • dsdp \( \frac{\partial\sigma_{\mathrm{dev}}}{\partial p}\)
  • dedd \( \frac{\partial\epsilon_{\mathrm{vol}}}{\partial\epsilon_{\mathrm{dev}}}\)
  • dedp \( \frac{\partial\epsilon_{\mathrm{vol}}}{\partial p}\)
    Parameters
    modeMode of result.
    gpIntegration point.
    tStepTime step.

Reimplemented in oofem::FE2FluidMaterial.

Definition at line 95 of file fluiddynamicmaterial.C.

References computeTangent3D(), and oofem::zeros().

Referenced by oofem::Hexa21Stokes::computeStiffnessMatrix(), oofem::Tet1BubbleStokes::computeStiffnessMatrix(), oofem::Tet21Stokes::computeStiffnessMatrix(), computeTangents2D(), and oofem::FluidMaterialEvaluator::solveYourself().

◆ giveEffectiveViscosity()

virtual double oofem::FluidDynamicMaterial::giveEffectiveViscosity ( GaussPoint * gp,
TimeStep * tStep ) const
pure virtual

Gives the effective viscosity for the given integration point.

Parameters
gpGauss point of interest.
tStepTime step.
Returns
The effective viscosity in the point.

Implemented in oofem::BinghamFluidMaterial2, oofem::FE2FluidMaterial, oofem::NewtonianFluidMaterial, oofem::NonlinearFluidMaterial, and oofem::TwoFluidMaterial.

Referenced by giveIPValue().

◆ giveIPValue()

int oofem::FluidDynamicMaterial::giveIPValue ( FloatArray & answer,
GaussPoint * gp,
InternalStateType type,
TimeStep * tStep )
overridevirtual

Returns the integration point corresponding value in Reduced form.

Parameters
answerContain corresponding ip value, zero sized if not available.
gpIntegration point to which the value refers.
typeDetermines the type of internal variable.
tStepDetermines the time step.
Returns
Nonzero if the assignment can be done, zero if this type of variable is not supported.

Reimplemented from oofem::Material.

Reimplemented in oofem::TwoFluidMaterial.

Definition at line 134 of file fluiddynamicmaterial.C.

References oofem::FloatArray::at(), oofem::Material::give(), giveEffectiveViscosity(), oofem::Material::giveStatus(), and oofem::FloatArray::resize().

Referenced by oofem::FluidMaterialEvaluator::doStepOutput().


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