 Previous: New boundary condition definition Up: Creating new boundary condition Next: uniformFixedValue
This is an automatically generated documentation by LaTeX2HTML utility. In case of any issue, please, contact us at info@cfdsupport.com.

## codedFixedValue

• The codedFixedValue boundary condition was introduced within the run-time code compilation framework
• It enables to add a piece of C++ code to calculate the boundary value
• This piece of code is loaded and executed run-time
• Within the code you can use any functionality offered by Foam::fvMesh and Foam::Time classes
• It is always created within the particular case
• We are going to test it using the cavity case, let’s copy the case:
# cp -r $FOAM_TUTORIALS /incompressible/pisoFoam/RAS/cavity$FOAM_RUN

• We are going to set this boundary condition for the velocity at the movingWall patch
• Therefore we are going to touch these lines in 0/U:
    movingWall
{
type            fixedValue;
value           uniform (1 0 0);
}

• The implementation of the proposed boundary condition should look as follows:
    movingWall
{
type            codedFixedValue;
value           uniform (0 0 0);

redirectType    increaseToFixedValue;

code
#{
const scalar t = this->db().time().value();
const scalar t0 = 5.0;
const vector x0(1, 0, 0);
operator==( x0 * ( 1 / (1.0 + exp(-10.0*t/t0 + 5.0) ) ) );
#};
}

• line 25: defines the type of boundary condition,i.e., codedFixedValue
• line 26: compulsory initial value
• line 28: new BC name – users choice
• lines 30-36: implementation of new code
• line 32: variable holds the actual (physical) time of the simulation
• line 33: variable holds the value of parameter in ( )
• line 34: variable holds the value of parameter in ( )
• this is the particular case for vector-like variable
• a similar implementation for scalar-like variable ( , , , ) would be defined in the same way as on the line • line 35: implements the boundary condition ( )
• Now we can test the new boundary condition:
# blockMesh
# pisoFoam

• We can check the values at the movingWall in paraView or by using the command:
# pisoFoam -postProcess -func "patchAverage(U,name=movingWall)" | grep "of U = \|Time ="
• Homework: Modify the boundary condition to get the exact value of at the patch movingWall for • The possible solution is revealed in the footnote 13.1