Windtunnel/Boundary Conditions: Difference between revisions

From Arbeitsgruppe Kuiper
Jump to navigation Jump to search
(+keywords)
(major tidying, focus on a manual for the user_defined_parameters, 2 new pages for the problems)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Windtunnel online|up]]
[[Windtunnel online|up]]


= New Keywords =
= New user_defined_parameters in pluto.ini =


== in pluto.ini ==
* <code>KinematicViscosity_m2_per_s</code>, <code>DynamicViscosity_Pa_s</code>: read in ''visc_nu.c''


* <code>ObjectType_int</code>: 0=nothing, 1=cylinder/sphere, 2=square/cube of size <code>ObjectDiameter_cm</code>
== for Domain Boundaries ==
* <code>WindPressure_Pa</code>, <code>WindPressure_mbar</code> (mutually exclusive): pressure at entry (left)
* <code>PressureGradient_mbar_per_cm</code> positive (even though pressure drops from left to right)
* Wind velocity is ramped up to <code>WindVelocity_m_per_s</code> over time <code>InjectionTime_s</code>
* <code>WindTemperature_C</code>
* <code>KinematicViscosity_m2_per_s</code>, <code>DynamicViscosity_Pa_s</code>,
* <code>Wall_BoundaryCondition</code> for tangential walls, value from {0,1,2,3}


(ignored if given values <0)
* <code>Wall_BoundaryCondition</code> for tangential walls (X2_BEG, X2_END), value from {0,1,2,3}:
{| class="wikitable"
! value || [[:File:WT- Boundary Condition Skizze.jpg|meaning]] || VX1 || VX2
|-
| 0 || no-shear || zero-gradient || reflective
|-
| 1 || no-slip || reflective || reflective
|-
| 2 || no-wall || zero-gradient || zero-gradient
|-
| 3 || one-way wall || zero-gradient || zero-gradient & no-inflow
|}


== in init.c ==
* <code>WindPressure_Pa</code>, <code>WindPressure_mbar</code> (mutually exclusive): pressure at entry (X1_BEG)
* <code>PressureGradient_mbar_per_cm</code>:
** driving the flow if positive<sup>1</sup>
** ignored if negative, then ''WindVelocity'' is driving the flow.
* <code>WindVelocity_m_per_s</code>, <code>InjectionTime_s</code>: Wind velocity at entry (X1_BEG) is ramped up from 0 to the given value over the given time (if pressure gradient < 0 is specified).
* <code>WindTemperature_C</code>: determines density (via pressure) at entry (X1_BEG)


* macro <code>SOLID</code> to enable an object
<sup>1</sup>: even though pressure ''drops'' from left to right
* array <code>solid</code> containing value 1 or 0 for object matter being present/absent


= Walls =
== for Solid Object ==
[[File:WT- Boundary Condition Skizze.jpg|thumb]]


== tangential ==
(needs <code>SOLID = YES</code> in ''makefile_user_machinedefs'')


{| class="wikitable" id="ganz_oben"
* <code>ObjectType_int</code>:
|+ id="Ü-id" |
** 0 = nothing
|- id="K-id"
** 1 = cylinder/sphere of diameter <code>ObjectDiameter_cm</code> centered on the origin
!colspan="3"| Boundary condition for the wall
** 2 = square/cube of edge length <code>ObjectDiameter_cm</code> centered on the origin
|- id="Sprungziel1"
** \(-n\) = File ''solid.txt'' contains (at most) \(n\) voxels (lines of \(x~y~z\)). Voxels outside the origin-centered sphere of radius 0.6·<code>ObjectDiameter_cm</code> are discarded.
| || vx1 || vx2
|-
| no-shear || zero-gradient || reflective
|-
| no-slip || reflective || reflective
|-
| no-wall || zero-gradient || zero-gradient
|-
| one-way wall || zero-gradient || zero-gradient & no-inflow
|}


== entry/exit ==
* <code>Obj_BoundaryCondition</code>:
** -1 = no-slip
** <s>1 = no-shear</s> (unavailable due to an [[Windtunnel/Boundary_Conditions/on_Object|unresolved issue]])


=== prescribed velocity at entry (left) ===
= Analytical Solutions =


=== prescribe pressure drop (left to right) ===
(for comparisons)


* current simulation result: v-profile slightly asymmetric
== empty 2D channel ==


= Object =
$$
v_x(y) = \frac{\Delta p}{L}\frac{D^2/4-y^2}{2\mu}
$$


= Open Questions =
== empty circular tube ==


== Reflective cells ==
$$
v_z(r) = \frac{\Delta p}{L}\frac{R^2-r^2}{4\mu}
$$


Setting the vector \(\vec v_g\) in a ghost cell as \(\vec v_g=-\vec v\), with \(\vec v\) being the value in the adjacent real cell, yields \(\vec 0\) as interpolation right at the boundary. This works for plane walls. What to do in cases where a ghost cell has more than one real cell as nearest neighbor? This calls for [[Talk:Windtunnel/Boundary_Conditions|discussion]]!
with \(\mu\)=dynamical viscosity

Latest revision as of 16:56, 23 May 2025

up

New user_defined_parameters in pluto.ini

  • KinematicViscosity_m2_per_s, DynamicViscosity_Pa_s: read in visc_nu.c

for Domain Boundaries

  • Wall_BoundaryCondition for tangential walls (X2_BEG, X2_END), value from {0,1,2,3}:
value meaning VX1 VX2
0 no-shear zero-gradient reflective
1 no-slip reflective reflective
2 no-wall zero-gradient zero-gradient
3 one-way wall zero-gradient zero-gradient & no-inflow
  • WindPressure_Pa, WindPressure_mbar (mutually exclusive): pressure at entry (X1_BEG)
  • PressureGradient_mbar_per_cm:
    • driving the flow if positive1
    • ignored if negative, then WindVelocity is driving the flow.
  • WindVelocity_m_per_s, InjectionTime_s: Wind velocity at entry (X1_BEG) is ramped up from 0 to the given value over the given time (if pressure gradient < 0 is specified).
  • WindTemperature_C: determines density (via pressure) at entry (X1_BEG)

1: even though pressure drops from left to right

for Solid Object

(needs SOLID = YES in makefile_user_machinedefs)

  • ObjectType_int:
    • 0 = nothing
    • 1 = cylinder/sphere of diameter ObjectDiameter_cm centered on the origin
    • 2 = square/cube of edge length ObjectDiameter_cm centered on the origin
    • \(-n\) = File solid.txt contains (at most) \(n\) voxels (lines of \(x~y~z\)). Voxels outside the origin-centered sphere of radius 0.6·ObjectDiameter_cm are discarded.
  • Obj_BoundaryCondition:

Analytical Solutions

(for comparisons)

empty 2D channel

$$ v_x(y) = \frac{\Delta p}{L}\frac{D^2/4-y^2}{2\mu} $$

empty circular tube

$$ v_z(r) = \frac{\Delta p}{L}\frac{R^2-r^2}{4\mu} $$

with \(\mu\)=dynamical viscosity