# Boundary Conditions

There are two types of boundary conditions to fully specify for a given CFD problem and to define the behavior of the solution at the boundaries of the computational domain: Dirichlet boundary conditions and Neumann boundary conditions. These conditions play a crucial role in determining the accuracy and stability of the numerical solution obtained through simulation.

Dirichlet boundary conditions prescribe the value of the solution at the boundary of the computational domain, often used to set the velocity, temperature, or other flow properties at the boundaries. In AcuSolve, nodal boundary conditions are equivalent to Dirichlet boundary conditions and are applied at three, four, or six nodes on each surface.

On the other hand, Neumann boundary conditions prescribe the normal derivative of the solution at the boundary. They are often used to represent conditions where a certain amount of heat is either entering or leaving the domain through the boundary. Typical examples of Neumann boundary conditions include mass flux (or mass flow rate) and heat flux. In AcuSolve, element boundary conditions are equivalent to Neumann boundary conditions and are applied at the quadrature points (element faces) of the surfaces.

It is possible to over specify a boundary condition by using combinations of element and nodal boundary conditions. In that case, nodal boundary conditions take precedence over element boundary conditions, meaning that the element boundary condition is ignored. If more than one nodal boundary condition is specified for a given variable on a given node, then the boundary condition with the highest precedence takes effect.

In the context of fluid dynamics simulations, the choice between Neumann and Dirichlet boundary conditions depends on the physical problem being modeled and the available information. For example, if the velocity at a boundary is known, a Dirichlet condition on velocity might be applied. If the mass flux at the boundary is known, a Neumann condition might be more appropriate.

All problems in fluid dynamics are governed by the same standard conservation equations. What makes the solution of each problem unique is the set of boundary conditions. Hence, boundary conditions have great impact on the accuracy of the simulation. Therefore, it is ensured that realistic constraints are enforced on the CFD model. This section discusses the variety of boundary conditions used in AcuSolve.

Details of boundary condition guidelines can be found in the Guidelines for Quality CFD Modeling, specifically under the section on Boundary Condition Sensitivity.

## Flow Boundary Conditions

• Inflow Boundary Conditions

The inflow boundary conditions are applied at the boundaries where the flow enters the domain. Various methods exist for specifying inflow conditions.

• Velocity

The velocity inflow condition is employed to define the velocity at the inlet. Velocity components can be specified in different coordinate systems (Cartesian, cylindrical system, spherical systems), or the velocity magnitude normal to the boundary surface, with the other two components set to zero. The pressure value at the inlet needs adjustment during calculation to align with the specified velocity provided at the inlet. The velocity value itself remains constant or can be adjusted using a multiplier function. In pipe flows, setting the inflow with high precedence over the wall is recommended using the precedence parameter to ensure correct mass flow rate.

Additional input parameters are required for this boundary condition type, depending on the activated models. When turbulence is active, turbulence inlet parameters are necessary, including direct, auto, intensity length scale, intensity viscosity ratio and viscosity ratio.
• The direct turbulence input varies depending on the choice of turbulence models.
• Auto turbulence input type automatically assigns a turbulent state based on the selected turbulence model, turbulence intensity type, and turbulence flow type, applicable to all turbulence models.
• The intensity length scale turbulence input type approximates turbulence at the inlet using the turbulence intensity type and length scale. It is valid for all turbulence models.
• The intensity viscosity ratio turbulence input type calculates the turbulence parameters using turbulence intensity type and viscosity ratio. It is valid for two-equation models.
• The viscosity ratio turbulence input type calculates turbulence using the viscosity ratio. It is valid only for the Spalart-Allmaras turbulence model.

When the heat transfer equation is activated, the value temperature type is used to specify the temperature at the inlet. The heat flux temperature type is not used for the inlet boundary condition.

Radiation parameters are needed when using the P1 model or DO model.
Note: The heat transfer (temperature = advective diffusive) must be first selected before activating radiation.
• Average Velocity

An average velocity is applied at the surface. A boundary layer profiles for velocity and turbulence fields are calculated based on the distance from no-slip walls and the estimated Reynolds number. This boundary condition offers a robust method for automatically specifying physically realistic inlet conditions. It is considerably more realistic than specifying a constant velocity condition for internal flow applications.

• Mass flux

A user-prescribed mass flux (equivalent to mass flow rate) is applied to the surface. A boundary layer profiles for velocity and turbulence fields are calculated based on the distance from no-slip walls and estimated Reynolds number. Below is the mass flow rate equation:

$\stackrel{˙}{m}=\rho \text{​}\text{\hspace{0.17em}}VA$

where $\stackrel{˙}{m}$ : mass flow rate, $\rho$ : density, $V$ : velocity, $A$ : inlet area.

Starting from v2022.3, mass flow inlet conditions are no longer limited to planar surfaces. Cylindrically curved or arbitrarily shaped surfaces can be used to define inlet mass flow conditions. The flow direction is relative to the local surface normal, allowing for inlets on circumferential surfaces.

• Flow Rate

A user-prescribed flow rate (equivalent to volumetric flow rate) is imposed on the surface. A boundary layer profiles for velocity and turbulence fields are calculated based on the distance from no-slip walls and estimated Reynolds number.

$Q=VA$

• User-defined boundary layer profile at the inlet
As mentioned above, AcuSolve supports built-in boundary condition types (mass flux, flow rate, average velocity) that automatically generate a turbulent or laminar boundary layer profile. However, if these profiles are unsuitable for a particular application, you can generate a user-defined profile using one of the following options:
• Using the nodal boundary condition, type = piecewise_linear or type = cubic_spline

With this approach, AcuSolve interpolates the given velocity profile onto the mesh based on the data provided in a two-column array of dependent and independent variables. This approach is useful for profiles that are a function of a single coordinate direction.

• Using the nodal boundary condition, type = scattered_data

In this approach, AcuSolve interpolates the given velocity profile onto the mesh based on the data provided in a 4-column array of coordinates and velocity values. AcuSolve triangulates the input data to form a 2D mesh, then projects the coordinates of the inlet plane into this mesh to determine the mapping of the velocity. This approach is used when dealing with a profile that varies in more than one spatial direction.

• User-defined function for the velocity field

This is the most general approach, offering flexibility to accomplish a wide range of tasks.

• Pressure

A pressure value is applied to all the nodes of the surface. This type of condition is useful for simulating scenarios where the pressure at the inlet is known, but the velocity might vary. Turbulence inputs are required when turbulence is activated under equation. Refer to the details of turbulence inlet parameters under the velocity section.

• Stagnation pressure

A user-specified stagnation pressure (equivalent to total pressure) is explicitly defined at the inlet, while the corresponding velocity and static pressure are calculated as the simulation proceeds. Turbulence inflow parameters need to be specified, as in the velocity inflow type.

Stagnation pressure (total pressure) is the sum of static pressure and dynamic pressure, reflecting the total energy of the flow. It can be expressed as:

${P}_{0}=P+\frac{1}{2}\rho {V}^{2}$

where $P$ : static pressure, $\rho$ : density, $V$ : velocity.

The stagnation pressure type is weakly imposed boundary condition, making it a suitable choice for simulating flow through components such as fans, where changes in pressure and velocity are significant. It is suitable for both incompressible and compressible flow simulations.

• Velocity_pressure_temperature | mach_pressure_temperature

For a compressible inflow boundary condition, all three variables need to be specified. The simplest choice is primitive variables: velocity, pressure and temperature. Another choice could be Mach number, pressure and temperature. To specify these conditions, two inflow types are introduced: velocity_pressure_temperature or mach_pressure_temperature.

If Mach < 1, velocity is computed based on the given Mach number and temperature, while pressure is ignored. If Mach > 1, velocity is computed based on the given Mach number and temperature, while pressure and temperature are fixed.

• Outflow Boundary Conditions

This type of boundary condition is applied at the boundaries where the flow exits the domain.

• Pressure
The pressure type is typically used for the outflow. AcuSolve offers three pressure types.
• auto_pressure

The user-specified pressure is used in subsonic flow, while it is ignored if lower than the computed pressure on the outflow surface.

• fixed_pressure

The user-specified pressure is directly applied at the outflow surface.

• free_pressure

The user-specified pressure is ignored, and a computed pressure extrapolated from upstream is applied at the outflow surface.

• pressure_loss_factor

At the outlet, the pressure loss factor, which can vary up to 1, can be set. Setting the pressure_loss_factor = 1 at the outlet may enhance the simulation stability if reverse flow is caused by an excessively short domain.

• Back flow Condition

The outlet boundary condition in AcuSolve employs a weakly enforced condition on the pressure field. It attempts to make the integrated pressure over the boundary equal to some value (zero by default). This works well as long as the flow is exiting from the boundary. If, for some reason, the flow reverses and attempts to enter the domain, AcuSolve provides a method for you to specify the temperature of the re-entering flow. This is a function of the back_flow_conditions. When this condition is active, AcuSolve automatically applies nodal boundary conditions to the temperature, turbulence, viscoelastic_stress, and species variables at the nodes of an outlet where the flow has reversed and is entering the domain.

• Wall boundary conditions

This type of boundary condition is used for the physical walls in the simulation domain, specifying the velocity of the fluid at the wall.

For instance, for a stationary wall in viscous flow, a wall boundary condition would set all components of the velocity to zero. In a simulation where the wall itself is moving at a certain velocity, a wall boundary condition would impose that velocity on the fluid at the wall. In short, a wall boundary condition can be expressed as ${V}_{\text{normal}}=0$ and ${V}_{\text{tangential}}={V}_{\text{wall}}$ .

When heat transfer equation is activated, you must provide the temperature wall boundary condition by selecting either the value temperature type or the flux temperature type. Choosing the value temperature type requires providing temperature value, while the flux temperature type requires specifying heat flux. For external walls, you have an additional option, convective heat transfer option, which requires specifying convective heat coefficient and convective heat reference temperature.

If the flux specified for an exterior surface is 0, then it behaves as an adiabatic wall, meaning that no heat flux is applied to the external surface.

If the flux specified for an interior surface is 0, it is free to evolve during the simulation. This implies that there is still heat transfer across the surface via conduction, but the contribution of the heat flux from the surface triangles is zero. If you want an internal adiabatic wall, you will need to split the nodes on the surface to prevent heat transfer between the components.

• Slip Boundary Condition

This type of boundary condition is applied to the surface where there is no normal velocity but has zero shear stress, indicating no change in the tangential velocity. An element boundary condition of type ‘free’ is imposed on the pressure, which is particularly important for curved surfaces. Additionally, a plane of symmetry can be specified with this type.

• Symmetry Boundary Condition

For problems that have a plane of symmetry, exploiting the fact that the solution is symmetrical allows modeling only one half of the problem. The boundary type is then defined as symmetry at the symmetry plane. The geometry of the given surface is checked, and appropriate warning or error messages are issued if it is not flat. It is highly recommended to use symmetry instead of slip for all surfaces that are planes of symmetry. Mathematically the symmetry type is equivalent to the slip type, that is, zero flux across the plane and zero shear stress along the plane.

• Far-Field Boundary Condition

This type of boundary conditions is used to represent conditions far away from the source of disturbance. A far_field boundary condition includes both a velocity-based inflow condition and a pressure-based outflow condition. At each point on the boundary, the angle between the outward normal to the surface and the user-specified velocity is used to determine whether to impose the inflow or outflow conditions. The flow at these boundaries is typically uniform. Far-field is generally used for external flows.

• Free Surface Boundary Condition

As the name suggests, a free surface is the surface of the fluid not constrained by any physical boundary, such as the top surface of a sloshing box problem. This boundary condition imposes the normal component of mesh velocity to the flow velocity.

This is used in combination with the ALE mesh motion equation to calculate the shape of the top surface of the fluid, such as wave propagation or generation. However, it does not support breaking waves. Defining the surface tension for the surface is necessary. If the top surface of the fluid is intended to remain flat, this is not needed.

## Atmospheric Boundary Layer

The atmospheric boundary layer condition enables the specification of sustainable logarithmic inflow profiles for both wind velocity and turbulence. It is compatible with both one and two-equation turbulence models, offering flexibility in simulations. You can choose from a range of upstream roughness settings, including city, suburb, or forest, to closely reflect real-world conditions.

This boundary condition is indispensable for conducting external flow simulations in architectural engineering and wind turbine placement studies. Figure 1 depicts a schematic of the atmospheric boundary layer, illustrating the wind velocity profile at the inlet plane of the computation domain. This profile serves as a representative model of the roughness characteristics of the upstream terrain not encompassed within the computational domain.

AcuSolve provides two distinct methods for generating inflow wind velocity profiles using the atmospheric boundary layer approach. The first option, friction_velocity, relies on the logarithmic law, while the second sample_height_velocity, utilizes the power law.

In the friction_velocity approach, this method employs the logarithmic law to determine the wind velocity profile in the vertical direction, which is defined as

$U\left(y\right)=\frac{u*}{\kappa }\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{ln}\left(\frac{y+{y}_{0}}{{y}_{0}}\right)$

where $y$ is the distance from the ground, $u*$ the friction velocity, and $\kappa$ is the von Karman constant ( $0.40\sim 0.42$ ). ${y}_{0}$ represents the surface roughness.

You must specify the ground roughness height ( ${y}_{0}$ ) corresponding to the terrain type and the atmospheric friction velocity value ( $u*$ ) to generate the atmospheric boundary layer profile at the inlet. The friction velocity, representing the wall shear stress divided by the fluid density, $u*=\sqrt{\frac{{\tau }_{w}}{\rho }}$ poses a challenge for the use of the input value, but a rule of thumb suggests it is roughly one tenth of the wind velocity, ranging from 0.05 m/s in light winds to approximately 1 m/s in strong winds. For atmospheric boundary layer simulations, the fluid density should correspond to air density. Typical surface roughness values for different terrains are available in table 1, or you can specify your own using the atmosphere_ground_roughness command when atmospheric_roughness_type is set to user_value.
Table 1. Typical Terrain Types and Surface Roughness
Terrain Surface roughness
ocean 0.001 m
low grass 0.020 m
high grass 0.060 m
forest 1.000 m
suburb 0.300 m
town 1.000 m
city 2.500 m

Inlet turbulence properties are determined based on the chosen turbulence model. For instance, with the Spalart-Allmaras (S-A) model, you can specify the eddy viscosity.

$\nu =\text{\hspace{0.17em}}\text{\hspace{0.17em}}\kappa \left(y+{y}_{0}\right)\text{\hspace{0.17em}}\text{\hspace{0.17em}}\left(u*\right)$

where $\nu$ is the eddy viscosity.

For standard, RNG, realizable k-epsilon models, the turbulent kinetic energy ( $k$ ) and dissipation rate ( $\epsilon$ ) at the inlet plane are calculated using the following equations:

$k=\frac{{\left(u*\right)}^{2}}{\sqrt{{C}_{\mu }}}$
$\epsilon =\frac{{\left(u*\right)}^{3}}{\kappa \left(y+{y}_{0}\right)}$

Similarly, for k-omega and Shear Stress Transport (SST) models, the turbulent dissipation rate ( $\omega$ ) is determined accordingly. The turbulent kinetic energy is the same as the one used for the k-epsilon turbulence model.

$k=\frac{{\left(u*\right)}^{2}}{\sqrt{{C}_{\mu }}}$
$\omega =\frac{u*}{\sqrt{{C}_{\mu }}\kappa \left(y+{y}_{0}\right)}$

When atmospheric_reference_velocity_type is set to sample_height_velocity, the vertical velocity profile at the inlet is determined using the power law,

$U\left(y\right)={U}_{\text{ref}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}{\left(\frac{y}{{y}_{\text{ref}}}\right)}^{\alpha }$

where ${U}_{\text{ref}}$ is the reference velocity at the reference height ${y}_{\text{ref}}$ , $\alpha$ is the power law coefficient, which is a function of surface roughness.

An empirical ratio of 30 between inflow roughness and standard wall roughness is typically assumed, aiding in the determination of surface roughness values. For instance, if the atmospheric boundary layer inflow has a roughness of 0.001m, the ground with standard turbulence wall function should have a roughness of 0.03m.