1

Previous: Initial and boundary conditions Up: Rotation using OpenFOAM Next: Solid Body Motion
This is an automatically generated documentation by LaTeX2HTML utility. In case of any issue, please, contact us at info@cfdsupport.com.

Multiple Reference Frame - MRF

  • We start by copying of the mesh we have just created to MRF directory.
    # cp -r wholeMesh/constant/polyMesh MRFCase/constant
  • We need to setup initial conditions for water. So we copy file alpha.water.org to working copy.
    # cd $FOAM_RUN /mixerCase/MRFCase
    # cp 0/alpha.water.org 0/alpha.water
  • To fill mixer tank by water we will use utility setFields what is configured by file setFieldsDict.

     

    defaultFieldValues
    (
            volScalarFieldValue alpha.water 0
    );
    
    regions
    (
            boxToCell
            {
                    box ( -0.20 -0.15 -1 ) ( 0.2 0 1 );
                    fieldValues
                    (
                            volScalarFieldValue alpha.water 1
                    );
            }
    );
    
  • We run it
    # setFields
  • The last thing to be set up is the mixer rotation.
  • In this section we will use the Multiple Reference Frame method, which is used for the stationary flow solution computation.
  • To simulate the rotation, the real movement of the mesh is substituted by momentum sources in the stationary cells – we add the so called Coriolis term.
  • We need to choose the rotating zone, where we simulate the rotation. To do this, we need the topoSet utility and create a cellZone.
  • We choose the cells with the center of gravity inside of the cylinder with base radius $ 0.04123$ m, which is the maximum distance, where the mixer blades would rotate if they were actually rotating
  • Let us look at topoSetDict.
    # cat system/topoSetDict
    actions
    (
            {
                    name    rotor;
                    type    cellSet;
                    action  new;
                    source  cylinderToCell;
                    sourceInfo
                    {
                            p1 (0 0 0);
                            p2 (0 0 0.1);
                            radius 0.04123;
                    }
            }
    );
    

     

  • We create a cellSet called rotor and convert the cellSet to a cellZone
    # topoSet
    # setsToZones
  • Let us look at MRFProperties
    # cat constant/MRFProperties
    MRF1
    {
        active          true;
        cellZone        rotor;
    
        origin      (0 0 0);
        axis        (0 0 1);
        omega       6.28318;
    }
    

     

  • and transport properties in file transportProperties.
    # cat constant/transportProperties
    phases ( water air );
    
    water
    {
            transportModel  Newtonian;
            nu              nu [ 0 2 -1 0 0 0 0 ] 1e-06;
            rho             rho [ 1 -3 0 0 0 0 0 ] 1000;
    }
    
    air
    {
            transportModel  Newtonian;
            nu              nu [ 0 2 -1 0 0 0 0 ] 1.48e-05;
            rho             rho [ 1 -3 0 0 0 0 0 ] 1;
    }
    
    sigma                   sigma [ 1 0 -2 0 0 0 0 ] 0;
    

     

  • At last we run the solver:
    # interFoam > log.interFoam &
104

Figure: MRF method results visualization