## Velocity settings

Velocity settings are the most complex in this case due to the fact that some patches rotate within the rotating zone, some rotate outside of the rotating zone and others do not rotate at all. If we suppose that the fluid is being fully dragged by the walls, we need to take special care of all these cases.

• First of all, the inlet velocity is fully specified by the pressure imbalance. We only tell the solver the direction of incoming flow and it will compute the velocity of the fluid to make it consistent with the fixed total pressure. Similarly, the outlet uses a boundary condition that is compatible with the pressure field partially fixed by fixedMeanValue.
• Static walls impose static boundary condition on the fluid: The velocity on patches of the housing and inflow and outflow channels is set to zero.
• Rotating walls that are axially symmetrical and outside of the rotating zone can be still made to rotate by the boundary condition rotatingWallVelocity. Rotation is specified by the common triplet origin, axis and omega consistently with settings in fvOptions or dynamicMeshDict.
• Rotating walls that generally non-symmetric (though preferably at least periodic) and inside of the rotating zone need the boundary condition movingWallVelocity, which corrects fluxes for moving boundaries. If the boundary does not move, it behaves exactly as fixedValue. The value is zero, because it is the boundary velocity with respect to the moving frame.

• listing of 0/U:

```dimensions [0 1 -1 0 0 0 0];

internalField uniform (0 0 1);

boundaryField
{
".*_inlet"
{
type            pressureDirectedInletVelocity;
value           \$internalField;
inletDirection  uniform (0 0 1);
}
".*_outlet"
{
type            pressureInletOutletVelocity;
value           \$internalField;
}
{
type            movingWallVelocity;
value           uniform (0 0 0);
}
"(volute_disc1_wall|volute_disc2_wall|volute_engine_wall)"
{
type            rotatingWallVelocity;
origin          (0 0 0);
axis            (0 0 1);
omega           209;
}
"(inflow_wall|outflow_wall|housing_wall)"
{
type            fixedValue;
value           uniform (0 0 0);
}
".*_ami"
{
type            cyclicAMI;
value           \$internalField;
}
}
```