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 )