# Volumes

Volume entities in Flow360 are used to set up volume zones, local refinements and 3D models. Flow360 provides two primary volume primitives: boxes and cylinders.


# 📝 Volume Primitives

Volume primitives can be used individually or combined to create complex geometric configurations.

Type Description
Box Rectangular prism defined by center, size, and orientation
Cylinder Cylindrical volume defined by axis, radius, and height

# 🔍 Detailed Descriptions

# Box

A box is a rectangular prism defined by its center point and size (dimensions). Boxes can be oriented in three-dimensional space using one of two transformation methods.

# 📋 Box Parameters

Parameter Description Unit
Name Name identifier for the box (note: names are not required to be unique) -
Center Three-dimensional coordinates defining the center point length (e.g. m)
Size Three-dimensional dimensions (length, width, height) length (e.g. m)

# 📋 Box Orientation Methods

# Method 1: Principal Axes

Defines the box orientation using two orthogonal vectors. This method provides direct control over the box's principal directions.

Parameter Description Unit
Axes Two orthogonal vectors defining principal directions dimensionless

Notes:

  • Axes must be orthogonal vectors
  • First axis defines the primary direction
  • Second axis defines the secondary direction
  • Third axis is automatically computed to complete the right-handed coordinate system

# Method 2: Axis & Angle

Defines the box orientation using a rotation axis and angle. This method is useful when you need to rotate the box around a specific axis.

Parameter Description Unit
Rotation Axis Axis vector for rotation dimensionless
Rotation Angle Angle of rotation around the specified axis degrees

Notes:

  • Rotation angle is in degrees
  • Positive angle follows right-hand rule around the rotation axis

# Cylinder

A cylinder is a three-dimensional geometric shape with a circular or oval cross-section.

# 📋 Cylinder Parameters

Parameter Description Unit
Name Name identifier for the cylinder (note: names are not required to be unique)
Center Three-dimensional coordinates defining the center point length (e.g. m)
Axis Axis vector defining cylinder direction dimensionless
Radius Distance from central axis to outer surface length (e.g. m)
Inner Radius Distance from central axis to inner surface length (e.g. m)
Height Length along central axis length (e.g. m)

Notes:

  • The cylinder axis defines the direction of the cylinder
  • Inner radius defaults to 0 for a full cylinder
  • Height is measured along the cylinder's central axis

💡 Tips

  • Choose volume type based on your specific needs:
    • Use Box for rectangular refinement zones
    • Use Cylinder for circular regions and rotating machinery
  • Consider volume placement and orientation carefully
  • Ensure proper scaling relative to your simulation domain
  • Review volume overlap implications before implementation
  • Toggle volume visibility by clicking the eye icon that appears when hovering over or selecting the volume

❓ Frequently Asked Questions

  • Can volumes overlap?

    Yes, volumes can overlap, but this should be done intentionally as it may affect mesh generation and simulation results.

  • How do I create a hollow cylinder?

    Set the inner radius parameter to a value greater than 0 and less than the outer radius.

  • What happens if I don't specify orientation for a box?

    The box will align with the global coordinate system axes.

  • Can I use volumes for boundary conditions?

    No, volumes are used for defining regions within the domain, not for boundary conditions.

  • How do I create a complex shape?

    Combine multiple volumes using boolean operations or by positioning them appropriately.

🐍 Python Example Usage

Below is python code example of how to create volumes:
import flow360 as fl

box = fl.Box(
    name="my_box",
    center=(0, 0, 0) * fl.u.m,
    size=(1, 1, 1) * fl.u.m,
    axis_of_rotation=(0, 1, 0),
    angle_of_rotation=30 * fl.u.deg
)

cylinder = fl.Cylinder(
    name="my_cylinder",
    center=(0, 0, 0) * fl.u.m,
    axis=(0, 1, 0),
    outer_radius=1.0 * fl.u.m,
    height=2.0 * fl.u.m
)