Public Member Functions | List of all members
activePressureForceBaffleVelocityFvPatchVectorField Class Reference

This boundary condition is applied to the flow velocity, to simulate the opening or closure of a baffle due to area averaged pressure or force delta, between both sides of the baffle. This is achieved by merging the behaviours of wall and cyclic baffles. More...

Inheritance diagram for activePressureForceBaffleVelocityFvPatchVectorField:
Inheritance graph
[legend]
Collaboration diagram for activePressureForceBaffleVelocityFvPatchVectorField:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("activePressureForceBaffleVelocity")
 
 activePressureForceBaffleVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &)
 
 activePressureForceBaffleVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
 
 activePressureForceBaffleVelocityFvPatchVectorField (const activePressureForceBaffleVelocityFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fvPatchFieldMapper &)
 
 activePressureForceBaffleVelocityFvPatchVectorField (const activePressureForceBaffleVelocityFvPatchVectorField &)
 
virtual tmp< fvPatchVectorFieldclone () const
 
 activePressureForceBaffleVelocityFvPatchVectorField (const activePressureForceBaffleVelocityFvPatchVectorField &, const DimensionedField< vector, volMesh > &)
 
virtual tmp< fvPatchVectorFieldclone (const DimensionedField< vector, volMesh > &iF) const
 
virtual void autoMap (const fvPatchFieldMapper &)
 
virtual void rmap (const fvPatchVectorField &, const labelList &)
 
virtual void updateCoeffs ()
 
virtual void write (Ostream &) const
 

Detailed Description

This boundary condition is applied to the flow velocity, to simulate the opening or closure of a baffle due to area averaged pressure or force delta, between both sides of the baffle. This is achieved by merging the behaviours of wall and cyclic baffles.

The baffle joins two mesh regions, where the open fraction determines the interpolation weights applied to each cyclic- and neighbour-patch contribution. This means that this is boundary condition is meant to be used in an extra wall beyond an existing cyclic patch pair.

The baffle is activated when the area weighted pressure difference between master and slave patches is larger then minThresholdValue.

Once the threshold is crossed, the baffle is activated and continues to open or close at a fixed rate using

\[ x = x_{old} + s \times \frac{dt}{DT} \]

where

$ x $ = baffle open fraction [0-1]
$ x_{old} $ = baffle open fraction on previous evaluation
$ s $ = sign for orientation: 1 to open or -1 to close
$ dt $ = simulation time step
$ DT $ = time taken to open the baffle

The open fraction is then applied to scale the patch areas.

Usage
Property Description Required Default
p Pressure field name no p
cyclicPatch Cyclic patch name yes
openFraction Current open fraction [0-1] yes
openingTime Time taken to open or close the baffle yes
maxOpenFractionDelta max fraction change per timestep yes
minThresholdValue Min absolute pressure or force difference for activation yes
forceBased Force (true) or pressure-based (false) activation yes
opening Baffle is opening (true) or closing (false) yes

Example of the boundary condition specification:

    <patchName>
    {
        type            activePressureForceBaffleVelocity;
        p               p;
        cyclicPatch     cyclic1;
        openFraction    0.2;
        openingTime     5.0;
        maxOpenFractionDelta 0.1;
        minThresholdValue 0.01;
        forceBased      false;
        opening         true;
    }
Source files

Definition at line 175 of file activePressureForceBaffleVelocityFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ activePressureForceBaffleVelocityFvPatchVectorField() [1/5]

Definition at line 32 of file activePressureForceBaffleVelocityFvPatchVectorField.C.

Referenced by activePressureForceBaffleVelocityFvPatchVectorField::clone().

Here is the caller graph for this function:

◆ activePressureForceBaffleVelocityFvPatchVectorField() [2/5]

Definition at line 84 of file activePressureForceBaffleVelocityFvPatchVectorField.C.

References dict, p, and Foam::Zero.

◆ activePressureForceBaffleVelocityFvPatchVectorField() [3/5]

◆ activePressureForceBaffleVelocityFvPatchVectorField() [4/5]

◆ activePressureForceBaffleVelocityFvPatchVectorField() [5/5]

Member Function Documentation

◆ TypeName()

TypeName ( "activePressureForceBaffleVelocity"  )

◆ clone() [1/2]

virtual tmp<fvPatchVectorField> clone ( ) const
inlinevirtual

◆ clone() [2/2]

virtual tmp<fvPatchVectorField> clone ( const DimensionedField< vector, volMesh > &  iF) const
inlinevirtual

◆ autoMap()

void autoMap ( const fvPatchFieldMapper m)
virtual

Definition at line 175 of file activePressureForceBaffleVelocityFvPatchVectorField.C.

References Foam::endl(), forAll, Foam::Info, Foam::mag(), mesh, and Foam::foamVersion::patch.

Here is the call graph for this function:

◆ rmap()

void rmap ( const fvPatchVectorField ptf,
const labelList addr 
)
virtual

◆ updateCoeffs()

void updateCoeffs ( )
virtual

◆ write()

void write ( Ostream os) const
virtual

Definition at line 371 of file activePressureForceBaffleVelocityFvPatchVectorField.C.

References os(), fvPatchField::write(), Ostream::writeEntry(), and Ostream::writeEntryIfDifferent().

Here is the call graph for this function:

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