{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "33751567",
   "metadata": {},
   "source": [
    "# DARPA SUBOFF Actuator Disk\n",
    "\n",
    "This notebook demonstrates the setup of an actuator disk in Flow360 using the DARPA SUBOFF geometry, configured for liquid operating conditions. The actuator disk is positioned at the aft end of the hull.\n",
    "\n",
    "![DARPA SUBOFF geometry](figures/darpa_geo.png)\n",
    "\n",
    "**Note:** The settings in this example are by no means a validation setup; they are crafted to showcase the capabilities of Flow360 and we have intentionally reduced node count and example FC cost. For rigorous validation, modify the settings as needed."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0608628e",
   "metadata": {},
   "source": [
    "## 1. Create Project from geometry\n",
    "Load Python libraries that are used throughout the notebook and Flow360 client.\n",
    "For this project we are starting from the geometry of the DARPA SUBOOF model. The geometry file is in the class `DARPA_SUBOFF` as a download link which gets the STEP file \"DARPA.STEP\". To use your own geometry, replace the file path in `from_geometry` with the path to your CAD file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "881341eb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:18.305855Z",
     "iopub.status.busy": "2026-07-14T10:17:18.305767Z",
     "iopub.status.idle": "2026-07-14T10:17:57.668056Z",
     "shell.execute_reply": "2026-07-14T10:17:57.667269Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[12:17:19] WARNING: DeprecationWarning: `length_unit` was not specified and     \n",
      "           defaults to 'm'. Relying on this default is deprecated and will be   \n",
      "           removed in a future release; specify the length unit of your         \n",
      "           geometry/mesh explicitly to avoid silent unit/scale mistakes.        \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[12:17:36] INFO: Geometry successfully submitted:                               \n",
      "                   type        = Geometry                                       \n",
      "                   name        = DARPA SUBOFF Actuator Disk                     \n",
      "                   id          = geo-d45f8099-b77e-4791-b1c4-3712d90e3f41       \n",
      "                   status      = uploaded                                       \n",
      "                   project id  = prj-424a2241-3764-45df-b355-6a1adddc9622       \n",
      "                                                                                \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           INFO: Waiting for geometry to be processed.                          \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[?25l"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\u001b[?25h"
     ]
    }
   ],
   "source": [
    "import flow360 as fl\n",
    "from flow360.examples import DARPA_SUBOFF\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from scipy.integrate import trapezoid\n",
    "\n",
    "DARPA_SUBOFF.get_files()\n",
    "project = fl.Project.from_geometry(\n",
    "    DARPA_SUBOFF.geometry,\n",
    "    name=\"DARPA SUBOFF Actuator Disk\",\n",
    ")\n",
    "geo = project.geometry\n",
    "geo.group_faces_by_tag(\"faceId\")  # group faces by faceId"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a0934750",
   "metadata": {},
   "source": [
    "## 2. Define Actuator Disk\n",
    "To define the actuator disk these steps are required:\n",
    "- Find force distribution along the radius of the actuator disk.\n",
    "- Define a volume zone where the actuator disk where the volumetric forces are applied inside the solver iterations. This zone can intersect any surface and only the nodes in the fluid zone will be affected. If an inner surface is present (like in this case), it is recommended to place the inner radius of the actuator disk volume to intersect with the surface. This is to prevent a hub vortex to appear close to the surface due to jump in pressure forces at the hub, creating circulating regions not realistic.\n",
    "- Define an axisymmetric refinement inside the actuator disk region to properly capture the volumetric forces discontinuities. This refinement cannot intersect any surface.\n",
    "\n",
    "Optionally:\n",
    "- Add volumetric refinements around the actuator disk for proper wake capturing.\n",
    "- Add surface refinements close to the actuator disk inner radius."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f8f9e33b",
   "metadata": {},
   "source": [
    "### 2.1 Find force distributions\n",
    "The axial and circumferential force distributions are the external pressure forces that are applied to each control volume over the actuator disk radius. The input for the actuator disk is a pressure distribution. Axial distribution will act on the axial momentum creating a downwash and circumferential distribution will act perpendicular to the axial direction by adding a swirl velocity on the wake. These distributions can be found from two sources:\n",
    "- Radial thrust and torque distributions provided from manufacturer or measured experimentally. For this cases, we need to convert the thrust and torque distributions to pressure distributions.\n",
    "- Approximated distributions based from total thrust and torque. These approximations range from simple uniform distributions to more advanced analytical formulations based on vortex theory.\n",
    "\n",
    "First, we define the geometry of the rotor and operating conditions:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "df82e275",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.669949Z",
     "iopub.status.busy": "2026-07-14T10:17:57.669729Z",
     "iopub.status.idle": "2026-07-14T10:17:57.672247Z",
     "shell.execute_reply": "2026-07-14T10:17:57.671847Z"
    }
   },
   "outputs": [],
   "source": [
    "# Define geometry\n",
    "R_out = 0.3  # Outer radius of the actuator disk\n",
    "R_hub = 0.0597 / 2  # Blade root radius\n",
    "R_in = (\n",
    "    R_hub * 0.98\n",
    ")  # Inner radius of the actuator disk, smaller than the blade root radius to prevent hub vortex affecting the surface flow\n",
    "NBlades = 5  # Number of blades\n",
    "\n",
    "# Define operating conditions\n",
    "thrust = 2000  # Thrust force\n",
    "torque = 100  # Torque force\n",
    "omega = 100 * 2 * np.pi / 60  # Rotation rate\n",
    "rho = 1000  # Density\n",
    "Uinf = 5  # Freestream velocity"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e4872ec2",
   "metadata": {},
   "source": [
    "**If thrust and torque radial distributions are given:**\n",
    "\n",
    "We would read the data from a dataset and convert the force distribution to pressure distribution. However, for this example, we assume a triangular distribution with a maximum value at 70% radial location for both of them. We follow this method:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "559fd770",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.673469Z",
     "iopub.status.busy": "2026-07-14T10:17:57.673375Z",
     "iopub.status.idle": "2026-07-14T10:17:57.676096Z",
     "shell.execute_reply": "2026-07-14T10:17:57.675594Z"
    }
   },
   "outputs": [],
   "source": [
    "# Read or input the thrust and torque radial distributions\n",
    "r_from_data = [R_in, R_out * 0.7, R_out]\n",
    "thrust_max = (2 * thrust) / (R_out - R_in)\n",
    "torque_max = (2 * torque) / (R_out - R_in)\n",
    "thrust_radial = [0, thrust_max, 0]  # Triangular distribution\n",
    "torque_radial = [0, torque_max, 0]  # Triangular distribution\n",
    "\n",
    "# Convert to pressure force distributions\n",
    "r_from_data = np.array(r_from_data)\n",
    "thrust_radial_from_data = np.array(thrust_radial)\n",
    "torque_radial_from_data = np.array(torque_radial)\n",
    "f_ax_from_data = thrust_radial_from_data / (2 * np.pi * r_from_data)\n",
    "f_cir_from_data = torque_radial_from_data / (2 * np.pi * r_from_data**2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7a3c6632",
   "metadata": {},
   "source": [
    "**If thrust and torque radial distributions are not given:**\n",
    "\n",
    "We can approximate with a realistic distribution from the Betz-Prandtl vortex theory described [here](https://simcloud-public-1.s3.amazonaws.com/publications/Electra_Joint_Paper/Electra_FC_Impact_of_Propulsion_Modeling_Approach_on_High_Lift_Force_Prediction_of_Propeller_Blown_Wings.pdf)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b5f8f7ee",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.677190Z",
     "iopub.status.busy": "2026-07-14T10:17:57.677097Z",
     "iopub.status.idle": "2026-07-14T10:17:57.680966Z",
     "shell.execute_reply": "2026-07-14T10:17:57.680463Z"
    }
   },
   "outputs": [],
   "source": [
    "# Radial discretization\n",
    "n_points = 200\n",
    "r_theory = np.linspace(R_in, R_out, n_points)\n",
    "xi = r_theory / R_out\n",
    "\n",
    "# Step 1: Compute axial velocity through disk\n",
    "v_ax = 0.5 * (np.sqrt((2 * thrust) / (rho * np.pi * R_out**2) + Uinf**2) + Uinf)\n",
    "\n",
    "# Step 2: Wake advance ratio\n",
    "lambda_w = v_ax / (omega * R_out)\n",
    "\n",
    "# Step 3: Compute Prandtl tip-loss and hub-loss functions\n",
    "f_tip = (NBlades / 2) * (1 - xi) * np.sqrt(1 + 1 / lambda_w**2)\n",
    "f_hub = (NBlades / 2) * (xi - R_in / R_out) * np.sqrt(1 + 1 / lambda_w**2)\n",
    "F_tip = (2 / np.pi) * np.arccos(np.exp(-f_tip))\n",
    "F_hub = (2 / np.pi) * np.arccos(np.exp(-f_hub))\n",
    "F = F_tip * F_hub\n",
    "\n",
    "# Step 4: Non-dimensional circulation (Gamma_1)\n",
    "gamma_tmp = (F * xi**2) / (lambda_w**2 + xi**2)\n",
    "\n",
    "# Step 5: Compute local body forces per unit area\n",
    "f_ax = NBlades * (rho * omega * gamma_tmp) / (2 * np.pi)\n",
    "f_cir = NBlades * (rho * v_ax * gamma_tmp) / (2 * np.pi * r_theory)\n",
    "\n",
    "# Step 6: Scale thrust and torque\n",
    "integrand_thrust = f_ax * 2 * np.pi * r_theory\n",
    "integrand_torque = f_cir * r_theory * 2 * np.pi * r_theory\n",
    "thrust_tmp = trapezoid(integrand_thrust, r_theory)\n",
    "torque_tmp = trapezoid(integrand_torque, r_theory)\n",
    "K_thrust = thrust / thrust_tmp\n",
    "K_torque = torque / torque_tmp\n",
    "f_ax_from_theory = K_thrust * f_ax\n",
    "f_cir_from_theory = K_torque * f_cir"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b0c9ffde",
   "metadata": {},
   "source": [
    "As a final step we define the pressure distributions that will be used for the actuator disk model. Furthermore, we can check that our distributions give the desired total thrust and torque by integrating them over the radius."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "382eb5eb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.682065Z",
     "iopub.status.busy": "2026-07-14T10:17:57.681975Z",
     "iopub.status.idle": "2026-07-14T10:17:57.684563Z",
     "shell.execute_reply": "2026-07-14T10:17:57.684030Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Desired thrust: 2000, computed thrust: 2000.0000000000002\n",
      "Desired torque: 100, computed torque: 100.00000000000003\n"
     ]
    }
   ],
   "source": [
    "data_is_given = False\n",
    "if data_is_given:\n",
    "    r = r_from_data\n",
    "    f_ax = f_ax_from_data\n",
    "    f_cir = f_cir_from_data\n",
    "else:\n",
    "    r = r_theory\n",
    "    f_ax = f_ax_from_theory\n",
    "    f_cir = f_cir_from_theory\n",
    "\n",
    "thrust_check = trapezoid(f_ax * 2 * np.pi * r, r)  # Pressure force integrated over the radius\n",
    "torque_check = trapezoid(f_cir * r * 2 * np.pi * r, r)  # Pressure force integrated over the radius\n",
    "\n",
    "print(f\"Desired thrust: {thrust}, computed thrust: {thrust_check}\")\n",
    "print(f\"Desired torque: {torque}, computed torque: {torque_check}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7687b7e7",
   "metadata": {},
   "source": [
    "### 2.2 Define volumetric zone for the actuator disk\n",
    "In this zone the volumetric source termns will be applied. The actuator disk is aligned with axis (-1, 0, 0) (negative x-direction) and is centered around x = 4.2609 m. The height of the actuator disk is recommended to be 10% of the outer radius. The inner radius is smaller than the blade root radius to prevent the artificial hub vortex to affect the surface flow.\n",
    "\n",
    "**The pressure distributions found previously are used here.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "7410ce8d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.685659Z",
     "iopub.status.busy": "2026-07-14T10:17:57.685572Z",
     "iopub.status.idle": "2026-07-14T10:17:57.689154Z",
     "shell.execute_reply": "2026-07-14T10:17:57.688783Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[12:17:57] INFO: using: SI unit system for unit inference.                      \n"
     ]
    }
   ],
   "source": [
    "with fl.SI_unit_system:\n",
    "    x_AD = 4.2609  # x-location of the actuator disk center\n",
    "    AD_zone = fl.Cylinder(\n",
    "        name=\"AD\",\n",
    "        axis=(-1, 0, 0),\n",
    "        center=(x_AD, 0, 0),\n",
    "        inner_radius=R_in,\n",
    "        outer_radius=R_out,\n",
    "        height=R_out * 0.1,\n",
    "    )\n",
    "\n",
    "    AD_model = fl.ActuatorDisk(\n",
    "        name=\"AD_model\",\n",
    "        volumes=AD_zone,\n",
    "        force_per_area=fl.ForcePerArea(\n",
    "            radius=r,\n",
    "            thrust=f_ax,\n",
    "            circumferential=f_cir,\n",
    "        ),\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "95d39dc8",
   "metadata": {},
   "source": [
    "### 2.3 Define the axisymmetric refinement\n",
    "The zone where the actuator disk model is applied will be discretised with a structured cylindrical mesh. This results in a more accurate discretisation since the nodes are aligned with the strong gradients. It is recommended to place >= 30 nodes in the axial direction and x2 spatial distance in the radial and circumferential directions. For higher disk loading cases this values will change with more nodes required the higher the disk loading."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9bc115fc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.690084Z",
     "iopub.status.busy": "2026-07-14T10:17:57.689998Z",
     "iopub.status.idle": "2026-07-14T10:17:57.691670Z",
     "shell.execute_reply": "2026-07-14T10:17:57.691310Z"
    }
   },
   "outputs": [],
   "source": [
    "d_axial = R_out * 0.1 / 30  # 30 nodes in the axial direction\n",
    "d_radial = d_axial * 2  # x2 spatial distance in the radial direction\n",
    "d_circumferential = d_axial * 2  # x2 spatial distance in the circumferential direction"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ee7fe00",
   "metadata": {},
   "source": [
    "The surface close to the inner radius of this region will grow layers until the growth is stopped due to the presence of the refinement. Depending on the surface elements length and the axisymmetric refinement spacings, this can lead to bad quality meshes close to the surface. Therefore, the inner radius for this region must be chosen with care since we want to accurately predict the boundary layer but also have the axisymmetric refinement.\n",
    "\n",
    "One solution is to force a number of layers that we want to have between the surface and the refinement region by changing the inner radius of the axisymmetric refinement. The amount of layers needed until isotropy is influenced by the first layer thickness, surface element length and the growth rate so playing with these values will give the desired mesh."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "95808c07",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.692701Z",
     "iopub.status.busy": "2026-07-14T10:17:57.692615Z",
     "iopub.status.idle": "2026-07-14T10:17:57.694252Z",
     "shell.execute_reply": "2026-07-14T10:17:57.693989Z"
    }
   },
   "outputs": [],
   "source": [
    "first_layer_thickness = 1e-5\n",
    "growth_rate = 1.2\n",
    "surface_elements_length = 0.001\n",
    "n_layers = 20\n",
    "\n",
    "total_height = first_layer_thickness * growth_rate**n_layers\n",
    "\n",
    "inner_radius = R_hub + total_height"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "14889087",
   "metadata": {},
   "source": [
    "We can now define the axisymmetric refinement region which has a modified inner radius to fit the specified layers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "0b8e94cb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.695340Z",
     "iopub.status.busy": "2026-07-14T10:17:57.695255Z",
     "iopub.status.idle": "2026-07-14T10:17:57.698352Z",
     "shell.execute_reply": "2026-07-14T10:17:57.698067Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           INFO: using: SI unit system for unit inference.                      \n"
     ]
    }
   ],
   "source": [
    "with fl.SI_unit_system:\n",
    "    refinements = [\n",
    "        fl.AxisymmetricRefinement(\n",
    "            name=\"AD_axisym\",\n",
    "            spacing_axial=d_axial,\n",
    "            spacing_radial=d_radial,\n",
    "            spacing_circumferential=d_circumferential,\n",
    "            entities=[\n",
    "                fl.Cylinder(\n",
    "                    name=\"AD_axisym\",\n",
    "                    axis=(1, 0, 0),\n",
    "                    center=(x_AD, 0, 0),\n",
    "                    inner_radius=inner_radius,\n",
    "                    outer_radius=R_out,\n",
    "                    height=R_out * 0.1,\n",
    "                ),\n",
    "            ],\n",
    "        )\n",
    "    ]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f9a900f6",
   "metadata": {},
   "source": [
    "### 2.4 Surface and Volume Refinements\n",
    "It is possible to use surface refinements to force the maximum surface element length between the surface and the axisymmetric refinement and control the number of layers to fit. Additionally, the influence of the actuator disk wake on the surface will be captured more accurately.\n",
    "\n",
    "Besides, volumetric refinements around the actuator disk volume region will capture the wake with more accuracy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9009c27a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.699421Z",
     "iopub.status.busy": "2026-07-14T10:17:57.699346Z",
     "iopub.status.idle": "2026-07-14T10:17:57.709304Z",
     "shell.execute_reply": "2026-07-14T10:17:57.708820Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           INFO: using: SI unit system for unit inference.                      \n"
     ]
    }
   ],
   "source": [
    "with fl.SI_unit_system:\n",
    "    faces_close_to_AD = [\n",
    "        geo[f\"body00001_face000{n:02d}\"] for n in [2, 4, 19, 21]\n",
    "    ]  # Surface faces close to axisymmetric refinement\n",
    "    surface_refinement = fl.SurfaceRefinement(\n",
    "        name=\"surface_refinement\",\n",
    "        max_edge_length=1 * fl.u.mm,\n",
    "        faces=faces_close_to_AD,\n",
    "    )\n",
    "\n",
    "    height = R_out * 3  # Height of the volume refinement\n",
    "    front_space = R_out * 0.5  # Space in front of the actuator disk to the volume refinement\n",
    "    center_volume = x_AD + (height / 2 - front_space)\n",
    "    volume_refinement = fl.UniformRefinement(\n",
    "        name=\"volume_refinement\",\n",
    "        spacing=10 * fl.u.mm,\n",
    "        entities=[\n",
    "            fl.Cylinder(\n",
    "                name=\"volume_refinement\",\n",
    "                axis=(1, 0, 0),\n",
    "                center=(center_volume, 0, 0),\n",
    "                outer_radius=R_out * 1.5,\n",
    "                height=height,\n",
    "            )\n",
    "        ],\n",
    "    )\n",
    "\n",
    "    L = 4.3562\n",
    "    height_general = L * 2\n",
    "    front_space_general = 0.5\n",
    "    center_general = height_general / 2 - front_space_general\n",
    "    general_refinement = fl.UniformRefinement(\n",
    "        name=\"general_refinement\",\n",
    "        spacing=20 * fl.u.mm,\n",
    "        entities=[\n",
    "            fl.Cylinder(\n",
    "                name=\"general_refinement\",\n",
    "                axis=(1, 0, 0),\n",
    "                center=(center_general, 0, 0),\n",
    "                outer_radius=R_out * 2,\n",
    "                height=height_general,\n",
    "            )\n",
    "        ],\n",
    "    )\n",
    "    refinements += [\n",
    "        surface_refinement,\n",
    "        volume_refinement,\n",
    "        general_refinement,\n",
    "    ]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "05b3d9f4",
   "metadata": {},
   "source": [
    "The mesh looks like:\n",
    "\n",
    "![DARPA MESH](figures/DARPA_mesh.png)\n",
    "\n",
    "Taking a zoom view around the axisymmetric refinement close to the hull we can visually check that the specified number of layers to fit inside the gap between the outer radius of the hull and the inner radius of the refinement is correct.\n",
    "\n",
    "![DARPA MESH ZOOM](figures/DARPA_zoom_mesh.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e22bd4c0",
   "metadata": {},
   "source": [
    "## 4. Use Liquid Condition\n",
    "\n",
    "For this example we want to simulate the veihcle in free water conditions. To do this, the class fl.LiquidOperatingCondition() is used:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c52871fd",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.710508Z",
     "iopub.status.busy": "2026-07-14T10:17:57.710407Z",
     "iopub.status.idle": "2026-07-14T10:17:57.723589Z",
     "shell.execute_reply": "2026-07-14T10:17:57.723071Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           INFO: using: SI unit system for unit inference.                      \n"
     ]
    }
   ],
   "source": [
    "with fl.SI_unit_system:\n",
    "    operating_condition = fl.LiquidOperatingCondition(velocity_magnitude=5, alpha=0 * fl.u.deg)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ed62a488",
   "metadata": {},
   "source": [
    "## 5. Define SimulationParams\n",
    "- The simulation parameters are defined in the python class fl.SimulationParams()\n",
    "- Reference geometry for the non-dimensionalisation of the coefficients are specified\n",
    "- Operating conditions are specified using LiquidOperating condition.\n",
    "- Time settings are defined to run a steady simulation.\n",
    "- Actuator Disk model is included in the model definitions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "919ae459",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.725210Z",
     "iopub.status.busy": "2026-07-14T10:17:57.725120Z",
     "iopub.status.idle": "2026-07-14T10:17:57.752166Z",
     "shell.execute_reply": "2026-07-14T10:17:57.751496Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           INFO: using: SI unit system for unit inference.                      \n"
     ]
    }
   ],
   "source": [
    "with fl.SI_unit_system:\n",
    "    farfield = fl.AutomatedFarfield()\n",
    "    params = fl.SimulationParams(\n",
    "        meshing=fl.MeshingParams(\n",
    "            defaults=fl.MeshingDefaults(\n",
    "                boundary_layer_first_layer_thickness=first_layer_thickness,\n",
    "                surface_max_edge_length=20 * fl.u.mm,\n",
    "            ),\n",
    "            refinements=refinements,  # All refinements previously defined\n",
    "            volume_zones=[farfield],  # Farfield volume zone\n",
    "        ),\n",
    "        operating_condition=operating_condition,  # Liquid operating condition\n",
    "        time_stepping=fl.Steady(max_steps=5000),\n",
    "        models=[\n",
    "            fl.Fluid(\n",
    "                navier_stokes_solver=fl.NavierStokesSolver(),\n",
    "                turbulence_model_solver=fl.SpalartAllmaras(),\n",
    "            ),\n",
    "            fl.Freestream(surfaces=farfield.farfield),\n",
    "            fl.Wall(surfaces=geo[\"*\"]),\n",
    "            AD_model,  # Actuator disk model\n",
    "        ],\n",
    "        reference_geometry=fl.ReferenceGeometry(\n",
    "            moment_center=(0, 0, 0),\n",
    "            moment_length=(3.81, 3.81, 3.81),\n",
    "            area=45.604,\n",
    "        ),\n",
    "        outputs=[\n",
    "            fl.VolumeOutput(\n",
    "                output_fields=[\n",
    "                    \"primitiveVars\",\n",
    "                    \"Cp\",\n",
    "                    \"qcriterion\",\n",
    "                ],\n",
    "            ),\n",
    "            fl.SurfaceOutput(\n",
    "                surfaces=geo[\"*\"],\n",
    "                output_fields=[\n",
    "                    \"primitiveVars\",\n",
    "                    \"Cp\",\n",
    "                    \"Cf\",\n",
    "                    \"CfVec\",\n",
    "                    \"yPlus\",\n",
    "                ],\n",
    "            ),\n",
    "        ],\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c09f0d6a",
   "metadata": {},
   "source": [
    "## 6. Run Case\n",
    "Run the case specifying parameters and the case name."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "fa37b01c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:17:57.753808Z",
     "iopub.status.busy": "2026-07-14T10:17:57.753722Z",
     "iopub.status.idle": "2026-07-14T10:18:01.715256Z",
     "shell.execute_reply": "2026-07-14T10:18:01.714792Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[?25l"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\u001b[?25h"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[12:17:58] WARNING: The spacing of 10 mm specified in UniformRefinement will be \n",
      "           cast to the first lower refinement in the octree series (7.812 mm).  \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           WARNING: The spacing of 20 mm specified in UniformRefinement will be \n",
      "           cast to the first lower refinement in the octree series (15.62 mm).  \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[12:17:59] INFO: Selecting beta/in-house mesher for possible meshing tasks.     \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[12:18:01] INFO: Successfully submitted:                                        \n",
      "                   type        = Case                                           \n",
      "                   name        = Steady actuator disk (liquid)                  \n",
      "                   id          = case-9c39793c-4680-48b0-9dab-4e65bd257846      \n",
      "                   status      = pending                                        \n",
      "                   project id  = prj-424a2241-3764-45df-b355-6a1adddc9622       \n",
      "                                                                                \n"
     ]
    }
   ],
   "source": [
    "# The 1 mm surface refinement near the actuator disk is intentionally fine\n",
    "# relative to the hull length, which triggers the client's length-scale sanity\n",
    "# check. Pre-acknowledge it so the (correct) settings submit without a prompt.\n",
    "# use_beta_mesher=True: the actuator-disk + axisymmetric-refinement workflow\n",
    "# runs on the in-house (beta) mesher, which produces the expected results.\n",
    "with fl.warning_bypass(\"potential_length_scale_mismatch\"):\n",
    "    case = project.run_case(\n",
    "        params=params,\n",
    "        name=\"Steady actuator disk (liquid)\",\n",
    "        use_beta_mesher=True,\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cfe4fc89",
   "metadata": {},
   "source": [
    "## 7. Post Processing\n",
    "Once the simulation is finished, we will monitor the convergence of residuals over the pseudo steps:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "e722701f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T10:18:01.717413Z",
     "iopub.status.busy": "2026-07-14T10:18:01.717223Z",
     "iopub.status.idle": "2026-07-14T11:03:57.196035Z",
     "shell.execute_reply": "2026-07-14T11:03:57.195521Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[?25l"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\u001b[?25h"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[13:03:56] INFO: Saved to                                                       \n",
      "           /tmp/tmpys2r7fn0/a8d8eb46-7683-42f6-8af8-7942c840294b.csv            \n"
     ]
    },
    {
     "data": {
      "image/png": "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FWD3FcOPVJuJTgLNGXrzzTeVg4OD+utf/6o2btyokpKS1KJFiybN9LfxJD09Xe3YsUOtWLFCLV26VO3YsUOlp6fbzptMJrVo0SKVnJysNm7cqB5//HHl4OCg/vnPf454G2Hvgw8+UDqdTt12221qx44dtq99+/bZtVu1apWaPXu22rBhg3r66aeVXq9Xf//730eljej39NNPq6uuukq9+eab6rPPPlNPPPGE8vPzUzfddJNduyuvvFJFRUWpf/3rX+r5559X7u7u6rHHHhuVNuKbDRVolFLqtttuU8HBwer1119X69evV35+frbp8SPdZiKT3ba/g48++oj169fT0tJCamoq9957L56enmPdrUln9erVtLW12R3z8PDg008/tb1ubW3liSeeID09HS8vL376059y6aWX2n3PSLUR/Z566ik2btw46HhgYCCbNm2yve7s7OTJJ59k+/btuLq6cu2113LllVfafc9ItRH2Pv74Y959912qqqoICwtjzZo1g/5OGwwGnn76aT7//HP0ej1XXnkl119//ai0Ed+sqKiI66+/npdffpmYmBjbcbPZzHPPPcfHH3+MRqPhsssu45ZbbkGr1Y54m4lMAo0QQgghJrzJEcuEEEIIcU6TQCOEEEKICU8CjRBCCCEmPAk0QgghhJjwJNAIIYQQYsKTQCOEEEKICU8CjRBCCCEmPAk0QogJ5/jx42zZsmWsuyGEGEck0AghJpzPPvuMe+6556z8rMOHD/P555+flZ8lhDhzEmiEEOJbbNq0iQcffHCsuyGEOAWHse6AEGJ8ys3Npa6ujsWLF5OVlUV9fT1LlizB19fXrl1VVRXZ2dm4u7uTnJyMq6ur3fljx45x+PBhgoODmTdvHnq93nZu//799PT0sGTJErv2hYWFXHzxxbZjJpOJnTt3YjAYSExM/MY+79+/n9LSUiIiIpg/f/5p3e9Q93HixAlyc3NpaGjg7bffBmDhwoVMmzbtlPc23PdPCDEyJNAIIYb0zjvv8M477+Dg4EBwcDAtLS0UFhby0UcfkZaWBsBLL73EXXfdxaJFi7BYLFRUVPDmm28yf/58jEYjP/vZz9i6dSspKSmUlZXR3d3NBx98YNt476WXXrL9ou/zySef8NJLL9kCTWtrKxdeeCHl5eUkJiaSk5Njt3EfQHt7O9///vc5fPgwycnJHDhwgLi4OD788EPc3NxOea/fdB/Nzc3k5+fT1NTE5s2bAZgyZQphYWGnvLfhvH9CiBE0tpt9CyHGq9/97ncKUG+88Ybt2C9+8QsVGxurzGazUkqpsLAw9corr9jOV1RUqD179iillFq7dq1KTk5WbW1ttvN33HGHWr58ud31rrjiCruf+9RTT6m4uDjb6//+7/9WMTExqrm5WSmlVGlpqfLx8bFr8+CDD6qpU6equro6pZRStbW1KiIiQv3+978f1r1+23088sgjauHChXbth3Nvw3n/hBAjR2pohBDfaMqUKVx77bW21/fddx/5+fnk5uYC4OLiwuHDhzEajQCEhISwcOFCANavX098fDxbtmxhw4YNvPvuuwQEBLBr1y4MBsOw+/Duu+9y88034+XlBUB4eDhXX321XZu3336bW265BX9/fwACAgK45ZZbbI+JTuXb7mMow723U71/QoiRI4+chBDfKDIyEo1GY/daq9VSUlJCQkICL7/8Mr/85S/5xz/+wdKlS1mzZg0/+clP0Ol0lJSUcOzYMTo7O+2uecUVV9DV1YWTk9Ow+lBaWsrUqVPtjk2bNo1t27bZtYmKirJrEx0dTUlJybB+xrfdx1CGe2+nev+EECNHAo0Q4hs1NTXZvW5pacFisdhGQpYuXUpubi6lpaVs3bqVBx98kNzcXJ588kk8PDxYs2YNd9999zdeX6vVYrFY7I51d3fbvfbz8xvUj4Gv/fz8aGxstDvW2Nho6+epfNt9DGU49zZUPwe+f0KIkSOPnIQQ36hvFk+fTZs24enpyZw5c1BKUVlZCUBERAQ///nPufHGG9mzZw8AF198MS+//LLtMU6fiooK259DQ0MpKCiwO//VV1/ZvU5LS7MV5AJYLBa7131tNm3aZHfsvffeG1bx7anuw93dfVDIGs69wbe/f0KIkSUjNEKIb+Tp6clll13Gr3/9a5qbm/nLX/7C2rVr8fT0xGKxsHz5ci688EKSk5NpamrixRdf5IEHHgDgiSeeYOnSpSxatIif/OQnaLVadu7ciclkYuPGjQD8+Mc/Zu3atdx8880sWrSIzz77jKysLAIDA219eOihh0hJSeHaa69l+fLlbNq0idraWoKCgmxtHn30URYsWMCVV17JypUr+eyzz8jMzCQjI+OU96iU+tb7mD9/Pvfeey9PPvmkrbZmOPd2qvdPCDGyNEopNdadEEKMPw8++CA7d+7k8ccfZ+PGjdTX13PJJZfwox/9yNams7OT119/nQMHDuDm5sbq1au56KKLbOdbW1t57bXXyMrKwsPDg2XLlrFmzRq7upLs7Gxee+01DAYDy5Ytw8PDg6+++oonnnjC1iYvL48XX3wRg8FAamoqgYGBfPHFF3ZtSkpK+Mc//kFJSQmRkZHcfPPNREZGDuteT3Uf7733Hp9//jktLS3ceuutLF++/JT3Npz3TwgxciTQCCGG1PcL+euvvx7rrkxI8v4JcXbJIychxKT3/vvv09PTM+S51NTUYY/kCCHGLwk0QoghxcfHD3tq9Xj36aef0traOuS5sLCwUQk0k+n9E2IikEdOQgghhJjwZNq2EEIIISY8CTRCCCGEmPAk0AghhBBiwpNAI4QQQogJTwKNEEIIISY8CTRCCCGEmPAk0AghhBBiwpNAI4QQQogJTwKNEEIIISa8/w8p/7Q5lso+HgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "case.wait()\n",
    "results = case.results\n",
    "non_linear = results.nonlinear_residuals\n",
    "non_linear = non_linear.as_dataframe()\n",
    "non_linear.plot(\"pseudo_step\", [\"0_cont\", \"1_momx\", \"2_momy\", \"3_momz\", \"4_nuHat\"], logy=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d074f72d",
   "metadata": {},
   "source": [
    "Then, we can monitor the drag force on the hull and also compute the actuator disk thrust and torque. To do so, we need to dimensionalise the forces based on the case reference quantities like length, density, reference velocity and area. Note that here the reference velocity for actuator disk output is the reference velocity magnitude and if this is not defined, then, the velocity magintude. This is the case since we are using `LiquidOperationCondition`, if we use `AerospaceCondition` then the reference velocity is the speed of sound."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "2c796b8d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-07-14T11:03:57.197298Z",
     "iopub.status.busy": "2026-07-14T11:03:57.197195Z",
     "iopub.status.idle": "2026-07-14T11:04:01.115889Z",
     "shell.execute_reply": "2026-07-14T11:04:01.115499Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[13:03:58] WARNING: The spacing of 10 mm specified in UniformRefinement will be \n",
      "           cast to the first lower refinement in the octree series (7.812 mm).  \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           WARNING: The spacing of 20 mm specified in UniformRefinement will be \n",
      "           cast to the first lower refinement in the octree series (15.62 mm).  \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[13:04:00] INFO: Saved to                                                       \n",
      "           /tmp/tmpys2r7fn0/ef1b5bf2-6011-4b2a-a397-10a79437049e.csv            \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[13:04:01] INFO: Saved to                                                       \n",
      "           /tmp/tmpys2r7fn0/cd410870-0687-4c53-8762-3667ac273af0.csv            \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Drag force: 364.1954252366553 N\n",
      "Power: 10913.380671986024 W\n",
      "Thrust: 2000.5037625612224 N\n",
      "Torque: -100.0257299781925 N*m\n"
     ]
    }
   ],
   "source": [
    "# Get the reference quantities\n",
    "length_unit = project.length_unit\n",
    "density = case.params.operating_condition.material.density\n",
    "U_ref = (\n",
    "    case.params.operating_condition.reference_velocity_magnitude\n",
    "    or case.params.operating_condition.velocity_magnitude\n",
    ")\n",
    "A_ref = case.params.reference_geometry.area\n",
    "\n",
    "# Body force coefficients\n",
    "body_forces = case.results.total_forces.as_dataframe().iloc[-1]\n",
    "CD = body_forces[\"CD\"]\n",
    "\n",
    "# Actuator disk force coefficients\n",
    "actuator_disk_output = case.results.actuator_disks.as_dataframe().iloc[-1]\n",
    "C_p = actuator_disk_output[\"Disk0_Power\"]\n",
    "C_t = actuator_disk_output[\"Disk0_Force\"]\n",
    "C_q = actuator_disk_output[\"Disk0_Moment\"]\n",
    "\n",
    "# Dimensionalise the forces\n",
    "drag_force = (CD * 0.5 * density * U_ref**2 * A_ref).to(\"N\")\n",
    "power = (C_p * density * U_ref**3 * length_unit**2).to(\"W\")\n",
    "thrust = (C_t * density * U_ref**2 * length_unit**2).to(\"N\")\n",
    "torque = (C_q * density * U_ref**2 * length_unit**3).to(\"N*m\")\n",
    "\n",
    "print(f\"Drag force: {drag_force}\")\n",
    "print(f\"Power: {power}\")\n",
    "print(f\"Thrust: {thrust}\")\n",
    "print(f\"Torque: {torque}\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "flow360",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
