Comparison of Rotating Freestream

Comparison of Rotating Freestream#

V1 Client (old)

 1with fl_v1.flow360_unit_system:
 2    params = fl_v1.Flow360Params(
 3        geometry=fl_v1.Geometry(
 4            ref_area=297360.0,
 5            moment_center=(1325.90, 468.75, 177.95),
 6            moment_length=(275.8, 275.8, 275.8),
 7        ),
 8        volume_output=fl_v1.VolumeOutput(
 9            output_format="paraview",
10            output_fields=[
11                "vorticity",
12                "primitiveVars",
13                "residualNavierStokes",
14                "residualTurbulence",
15                "T",
16                "Cp",
17                "mut",
18            ],
19        ),
20        surface_output=fl_v1.SurfaceOutput(
21            output_format="paraview", output_fields=["Cp"]
22        ),
23        slice_output=fl_v1.SliceOutput(
24            output_format="paraview",
25            output_fields=["Cp"],
26            slices={
27                "sliceTest": fl_v1.Slice(
28                    slice_normal=(0, 1, 0),
29                    slice_origin=(0.7165, 0.27772, 0.0179426),
30                )
31            },
32        ),
33        navier_stokes_solver=fl_v1.NavierStokesSolver(
34            absolute_tolerance=1e-9,
35            linear_solver=fl_v1.LinearSolver(max_iterations=25),
36            kappa_MUSCL=-1.0,
37        ),
38        turbulence_model_solver=fl_v1.NoneSolver(),
39        freestream=fl_v1.FreestreamFromMachReynolds(
40            Mach=0.2, Reynolds=1e3, temperature=288.15, alpha=0, beta=0
41        ),
42        time_stepping=fl_v1.UnsteadyTimeStepping(
43            time_step_size=timeStepSize,
44            physical_steps=numTimeSteps,
45            max_pseudo_steps=40,
46            CFL=fl_v1.RampCFL(initial=100, final=100, ramp_steps=5),
47        ),
48        boundaries={
49            "INNER_VOL/INNER_TOP": fl_v1.SlipWall(),
50            "INNER_VOL/INNER_BOTTOM": fl_v1.SlipWall(),
51            "OUTER_VOL/OUTER_TOP": fl_v1.SlipWall(),
52            "OUTER_VOL/OUTER_BOTTOM": fl_v1.SlipWall(),
53            "OUTER_VOL/FARFIELD": fl_v1.FreestreamBoundary(),
54        },
55        volume_zones={
56            "INNER_VOL": fl_v1.FluidDynamicsVolumeZone(
57                reference_frame=ReferenceFrameExpression(
58                    center=(2, 0, 0), axis=(0, 0, 1), theta_radians=thetaExpr
59                )
60            )
61        },
62    )

V2 Client (new ✅)

 1with fl.SI_unit_system:
 2    volume_mesh["INNER_VOL"].center = (2, 0, 0) * fl.u.m
 3    volume_mesh["INNER_VOL"].axis = [0, 0, 1]
 4    params = fl.SimulationParams(
 5        reference_geometry=fl.ReferenceGeometry(
 6            moment_center=(1325.9, 468.75, 177.95),
 7            moment_length=275.8 * fl.u.m,
 8            area=297360.0 * fl.u.m**2,
 9        ),
10        operating_condition=fl.operating_condition_from_mach_reynolds(
11            mach=0.2,
12            reynolds=1e3,
13            temperature=288.15,
14            alpha=0 * fl.u.deg,
15            beta=0 * fl.u.deg,
16            project_length_unit = 1 * u.m,
17        ),
18        models=[
19            fl.Fluid(
20                navier_stokes_solver=fl.NavierStokesSolver(
21                    absolute_tolerance=1e-9,
22                    linear_solver=fl.LinearSolver(max_iterations=25),
23                    kappa_MUSCL=-1,
24                ),
25                turbulence_model_solver=fl.NoneSolver(),
26            ),
27            fl.Rotation(
28                volumes=volume_mesh["INNER_VOL"],
29                spec=fl.AngleExpression(value=thetaExpr),
30            ),
31            fl.SlipWall(
32                surfaces=[
33                    volume_mesh["INNER_VOL/INNER_TOP"],
34                    volume_mesh["INNER_VOL/INNER_BOTTOM"],
35                    volume_mesh["OUTER_VOL/OUTER_TOP"],
36                    volume_mesh["OUTER_VOL/OUTER_BOTTOM"],
37                ]
38            ),
39            fl.Freestream(surfaces=volume_mesh["OUTER_VOL/FARFIELD"]),
40        ],
41        time_stepping=fl.Unsteady(
42            step_size=timeStepSize
43            * meshUnit
44            / operating_condition.thermalState.speed_of_sound,
45            steps=numTimeSteps,
46            max_pseudo_steps=40,
47            CFL=fl.RampCFL(initial=100, final=100, ramp_steps=5),
48        ),
49        outputs=[
50            fl.VolumeOutput(
51                output_format="paraview",
52                output_fields=[
53                    "vorticity",
54                    "primitiveVars",
55                    "residualNavierStokes",
56                    "residualTurbulence",
57                    "T",
58                    "Cp",
59                    "mut",
60                ],
61            ),
62            fl.SurfaceOutput(
63                output_format="paraview",
64                output_fields=["Cp"],
65                surfaces=volume_mesh["*"],
66            ),
67            fl.SliceOutput(
68                output_format="paraview",
69                output_fields=["Cp"],
70                slices=fl.Slice(
71                    name="sliceTest",
72                    normal=(0, 1, 0),
73                    origin=(0.7165, 0.27772, 0.0179426) * fl.u.m,
74                ),
75            ),
76        ],
77    )