FreeFOAM The Cross-Platform CFD Toolkit
porousZone Class Reference

Porous zone definition based on cell zones. More...

#include <finiteVolume/porousZone.H>


Detailed Description

Porous zone definition based on cell zones.

Porous zone definition based on cell zones and parameters obtained from a control dictionary constructed from the given stream. The orientation of the porous region is defined with the same notation as a coordinateSystem, but only a Cartesian coordinate system is valid.

Implemented porosity models:

powerLaw (C0 and C1 parameters)

\[ S = - \rho C_0 |U|^{(C_1 - 1)/2} U \]

Darcy-Forchheimer (d and f parameters)

\[ S = - (\mu \, d + \frac{\rho |U|}{2} \, f) U \]

Since negative Darcy/Forchheimer parameters are invalid, they can be used to specify a multiplier (of the max component).

The porousZones method porousZones::ddt() mirrors the normal fvm::ddt() method, but accounts for the effective volume of the cells.

See also:
porousZones and coordinateSystems
Source files

Definition at line 90 of file porousZone.H.

List of all members.

Classes

class  iNew
 Return pointer to new porousZone created on freestore from Istream. More...

Public Member Functions

 porousZone (const word &name, const fvMesh &, const dictionary &)
 Construct from components.
autoPtr< porousZoneclone () const
 Return clone.
virtual ~porousZone ()
 Destructor.
const wordzoneName () const
 cellZone name
const fvMeshmesh () const
 Return mesh.
label zoneId () const
 cellZone number
const dictionarydict () const
 dictionary values used for the porousZone
const coordinateSystemcoordSys () const
 Return coordinate system.
const pointorigin () const
 Return origin.
vector axis () const
 Return axis.
scalar porosity () const
 Return porosity.
scalar & porosity ()
 Edit access to porosity.
template<class Type >
void modifyDdt (fvMatrix< Type > &) const
 Modify time derivative elements according to porosity.
void addResistance (fvVectorMatrix &UEqn) const
 Add the viscous and inertial resistance force contribution.
void addResistance (const fvVectorMatrix &UEqn, volTensorField &AU, bool correctAUprocBC=true) const
 Add the viscous and inertial resistance force contribution.
virtual void writeDict (Ostream &, bool subDict=true) const
 Write the porousZone dictionary.

Friends

Ostreamoperator<< (Ostream &, const porousZone &)

Constructor & Destructor Documentation

virtual ~porousZone ( )
inlinevirtual

Destructor.

Definition at line 224 of file porousZone.H.


Member Function Documentation

autoPtr<porousZone> clone ( ) const
inline

Return clone.

Definition at line 194 of file porousZone.H.

References notImplemented.

const word& zoneName ( ) const
inline

cellZone name

Definition at line 233 of file porousZone.H.

const fvMesh& mesh ( ) const
inline

Return mesh.

Definition at line 239 of file porousZone.H.

label zoneId ( ) const
inline

cellZone number

Definition at line 245 of file porousZone.H.

const dictionary& dict ( ) const
inline

dictionary values used for the porousZone

Definition at line 251 of file porousZone.H.

Referenced by porousZone::iNew::operator()().

const coordinateSystem& coordSys ( ) const
inline

Return coordinate system.

Definition at line 257 of file porousZone.H.

const point& origin ( ) const
inline

Return origin.

Definition at line 263 of file porousZone.H.

References coordinateSystem::origin().

vector axis ( ) const
inline

Return axis.

Definition at line 269 of file porousZone.H.

References coordinateSystem::axis().

scalar porosity ( ) const
inline

Return porosity.

Definition at line 275 of file porousZone.H.

scalar& porosity ( )
inline

Edit access to porosity.

Definition at line 281 of file porousZone.H.

void modifyDdt ( fvMatrix< Type > &  m) const

Modify time derivative elements according to porosity.

Definition at line 32 of file porousZoneTemplates.C.

References cells, polyMesh::cellZones(), lduMatrix::diag(), forAll, and fvMatrix< Type >::source().

void addResistance ( fvVectorMatrix UEqn) const

Add the viscous and inertial resistance force contribution.

to the momentum equation

Definition at line 199 of file porousZone.C.

References cells, lduMatrix::diag(), fvMatrix< Type >::dimensions(), Foam::magSqr(), fvMatrix< Type >::psi(), fvMatrix< Type >::source(), and U.

Referenced by porousZones::addResistance().

void addResistance ( const fvVectorMatrix UEqn,
volTensorField AU,
bool  correctAUprocBC = true 
) const

Add the viscous and inertial resistance force contribution.

to the tensorial diagonal. Optionally correct the processor BCs of AU.

Definition at line 280 of file porousZone.C.

References cells, GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), fvMatrix< Type >::dimensions(), Foam::magSqr(), fvMatrix< Type >::psi(), and U.

void writeDict ( Ostream os,
bool  subDict = true 
) const
virtual

Friends And Related Function Documentation

Ostream& operator<< ( Ostream ,
const porousZone  
)
friend

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