Public Member Functions | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for activeBaffleVelocityFvPatchVectorField:
Collaboration graph
[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 160 of file activeBaffleVelocityFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ activeBaffleVelocityFvPatchVectorField() [1/5]

Construct from patch and internal field.

Definition at line 36 of file activeBaffleVelocityFvPatchVectorField.C.

Referenced by activeBaffleVelocityFvPatchVectorField::activeBaffleVelocityFvPatchVectorField(), and 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 82 of file activeBaffleVelocityFvPatchVectorField.C.

References activeBaffleVelocityFvPatchVectorField::activeBaffleVelocityFvPatchVectorField(), and Foam::Zero.

Here is the call graph for this function:

◆ activeBaffleVelocityFvPatchVectorField() [3/5]

Construct by mapping given activeBaffleVelocityFvPatchVectorField.

onto a new patch

Definition at line 58 of file activeBaffleVelocityFvPatchVectorField.C.

References activeBaffleVelocityFvPatchVectorField::activeBaffleVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ activeBaffleVelocityFvPatchVectorField() [4/5]

Construct as copy.

Definition at line 113 of file activeBaffleVelocityFvPatchVectorField.C.

References activeBaffleVelocityFvPatchVectorField::activeBaffleVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ activeBaffleVelocityFvPatchVectorField() [5/5]

Construct as copy setting internal field reference.

Definition at line 134 of file activeBaffleVelocityFvPatchVectorField.C.

References activeBaffleVelocityFvPatchVectorField::autoMap().

Here is the call graph for this function:

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 243 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

◆ 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 157 of file activeBaffleVelocityFvPatchVectorField.C.

Referenced by activeBaffleVelocityFvPatchVectorField::activeBaffleVelocityFvPatchVectorField(), and activeBaffleVelocityFvPatchVectorField::clone().

Here is the caller graph for this function:

◆ rmap()

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

Reverse map the given fvPatchField onto this fvPatchField.

Definition at line 186 of file activeBaffleVelocityFvPatchVectorField.C.

Referenced by activeBaffleVelocityFvPatchVectorField::clone().

Here is the caller graph for this function:

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Update the coefficients associated with the patch field.

Definition at line 210 of file activeBaffleVelocityFvPatchVectorField.C.

Referenced by activeBaffleVelocityFvPatchVectorField::clone().

Here is the caller graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Definition at line 292 of file activeBaffleVelocityFvPatchVectorField.C.

Referenced by activeBaffleVelocityFvPatchVectorField::clone().

Here is the caller graph for this function:

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