activeBaffleVelocityFvPatchVectorField Class Reference

This velocity boundary condition simulates the opening of a baffle due to local flow conditions, by merging the behaviours of wall and cyclic conditions. The baffle joins two mesh regions, where the open fraction determines the interpolation weights applied to each cyclic- and neighbour-patch contribution. More...

Inheritance diagram for activeBaffleVelocityFvPatchVectorField:
[legend]
Collaboration diagram for activeBaffleVelocityFvPatchVectorField:
[legend]

Public Member Functions

 TypeName ("activeBaffleVelocity")
 Runtime type information. More...
 
 activeBaffleVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &)
 Construct from patch and internal field. More...
 
 activeBaffleVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 activeBaffleVelocityFvPatchVectorField (const activeBaffleVelocityFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fvPatchFieldMapper &)
 Construct by mapping given activeBaffleVelocityFvPatchVectorField. More...
 
 activeBaffleVelocityFvPatchVectorField (const activeBaffleVelocityFvPatchVectorField &)
 Construct as copy. More...
 
virtual tmp< fvPatchVectorFieldclone () const
 Construct and return a clone. More...
 
 activeBaffleVelocityFvPatchVectorField (const activeBaffleVelocityFvPatchVectorField &, const DimensionedField< vector, volMesh > &)
 Construct as copy setting internal field reference. More...
 
virtual tmp< fvPatchVectorFieldclone (const DimensionedField< vector, volMesh > &iF) const
 Construct and return a clone setting internal field reference. More...
 
virtual void autoMap (const fvPatchFieldMapper &)
 Map (and resize as needed) from self given a mapping object. More...
 
virtual void rmap (const fvPatchVectorField &, const labelList &)
 Reverse map the given fvPatchField onto this fvPatchField. More...
 
virtual void updateCoeffs ()
 Update the coefficients associated with the patch field. More...
 
virtual void write (Ostream &) const
 Write. More...
 

Detailed Description

This velocity boundary condition simulates the opening of a baffle due to local flow conditions, by merging the behaviours of wall and cyclic conditions. The baffle joins two mesh regions, where the open fraction determines the interpolation weights applied to each cyclic- and neighbour-patch contribution.

We determine whether the baffle is opening or closing from the sign of the net force across the baffle, from which the baffle open fraction is updated using:

\[ x = x_{old} + sign(F_{net})\frac{dt}{DT} \]

where

\( x \) = baffle open fraction [0-1]
\( x_{old} \) = baffle open fraction on previous evaluation
\( dt \) = simulation time step
\( DT \) = time taken to open the baffle
\( F_{net} \) = net force across the baffle

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

Usage
Property Description Required Default value
p pressure field name no p
cyclicPatch cylclic patch name yes
orientation 1 or -1 used to switch flow direction yes
openFraction current opatch open fraction [0-1] yes
openingTime time taken to open the baffle yes
maxOpenFractionDelta max open fraction change per timestep yes

Example of the boundary condition specification:

    <patchName>
    {
        type            activeBaffleVelocity;
        p               p;
        cyclicPatch     cyclic1;
        orientation     1;
        openFraction    0.2;
        openingTime     5.0;
        maxOpenFractionDelta 0.1;
    }
See also
Foam::fixedValueFvPatchField Foam::cyclicFvPatchField
Source files

Definition at line 162 of file activeBaffleVelocityFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ activeBaffleVelocityFvPatchVectorField() [1/5]

Construct from patch and internal field.

Definition at line 39 of file activeBaffleVelocityFvPatchVectorField.C.

Referenced by activeBaffleVelocityFvPatchVectorField::clone().

Here is the caller graph for this function:

◆ activeBaffleVelocityFvPatchVectorField() [2/5]

activeBaffleVelocityFvPatchVectorField ( const fvPatch p,
const DimensionedField< vector, volMesh > &  iF,
const dictionary dict 
)

Construct from patch, internal field and dictionary.

Definition at line 85 of file activeBaffleVelocityFvPatchVectorField.C.

References Foam::Zero.

◆ activeBaffleVelocityFvPatchVectorField() [3/5]

Construct by mapping given activeBaffleVelocityFvPatchVectorField.

onto a new patch

Definition at line 61 of file activeBaffleVelocityFvPatchVectorField.C.

◆ activeBaffleVelocityFvPatchVectorField() [4/5]

◆ activeBaffleVelocityFvPatchVectorField() [5/5]

Construct as copy setting internal field reference.

Definition at line 138 of file activeBaffleVelocityFvPatchVectorField.C.

Member Function Documentation

◆ TypeName()

TypeName ( "activeBaffleVelocity"  )

Runtime type information.

◆ clone() [1/2]

virtual tmp<fvPatchVectorField> clone ( ) const
inlinevirtual

Construct and return a clone.

Definition at line 245 of file activeBaffleVelocityFvPatchVectorField.H.

References activeBaffleVelocityFvPatchVectorField::activeBaffleVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ clone() [2/2]

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

Construct and return a clone setting internal field reference.

Definition at line 262 of file activeBaffleVelocityFvPatchVectorField.H.

References activeBaffleVelocityFvPatchVectorField::activeBaffleVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ autoMap()

void autoMap ( const fvPatchFieldMapper m)
virtual

Map (and resize as needed) from self given a mapping object.

Note: cannot map field from cyclic patch anyway so just recalculate

Areas should be consistent when doing autoMap except in case of topo changes. ! Note: we don't want to use Sf here since triggers rebuilding of /*! fvMesh::S() which will give problems when mapped (since already on new mesh)

Definition at line 161 of file activeBaffleVelocityFvPatchVectorField.C.

References Foam::foamVersion::patch.

◆ rmap()

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

Reverse map the given fvPatchField onto this fvPatchField.

Definition at line 190 of file activeBaffleVelocityFvPatchVectorField.C.

References Foam::foamVersion::patch.

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Update the coefficients associated with the patch field.

Definition at line 214 of file activeBaffleVelocityFvPatchVectorField.C.

References Foam::constant::electromagnetic::e, Foam::endl(), polyPatch::faceCells(), forAll, Foam::Info, Foam::mag(), fvPatch::magSf(), Foam::max(), Foam::min(), p, Foam::foamVersion::patch, fvPatch::patch(), fvPatch::Sf(), Foam::sign(), and timeIndex.

Here is the call graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Definition at line 296 of file activeBaffleVelocityFvPatchVectorField.C.

References os(), fvPatchField< vector >::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: