Lothars Scratch: Difference between revisions

From Arbeitsgruppe Kuiper
Jump to navigation Jump to search
(→‎InitDomain(): fix Druck-DGL)
(→‎lin_T-Grad: +analytisch)
Line 18: Line 18:
* BC_Outflow_NoInflow für \(v_y\) und \(\rho \Rightarrow\) BC_ZeroGradient für \(P\)
* BC_Outflow_NoInflow für \(v_y\) und \(\rho \Rightarrow\) BC_ZeroGradient für \(P\)
* BC_ZeroGradient für \(v_x\) (und \(v_z\))
* BC_ZeroGradient für \(v_x\) (und \(v_z\))
==== analytisch ====
Für einen linearen Verlauf \(T=T_0-T'\, y\) mit \(T'=(T_0-T_1)/L_y\) können Druck- und Dichteprofil analytisch bestimmt werden, Letzteres lautet
\[
\rho(y)=\frac{P_0\,m}{k_\text{B}T_0}\left(1-\frac{T'}{T_0}y\right)^{\alpha-1}
\qquad,\qquad
\alpha = \frac{mg}{k_\text{B}T'}
\]
Für eine "Inversionslage" muss \(\alpha<1\) gelten.




=== pluto.ini ===
=== pluto.ini ===
* Grid = [0.0,0.1] x [1.0,1.1]
* Grid = [0.0,0.1] x [1.0,1.1]
* Boundary = [periodic,periodic] x [reflective,userdef]
* Boundary = [periodic,periodic] x [reflective,userdef]
Line 28: Line 40:
   IC_Perturbation_mode            +5.0
   IC_Perturbation_mode            +5.0
   IC_Perturbation_Amplitude_cs    +0.3
   IC_Perturbation_Amplitude_cs    +0.3




Line 37: Line 48:




=== makefile_user_simulationdefs ===


=== makefile_user_simulationdefs ===
   DIMENSIONS              = 2
   DIMENSIONS              = 2
   GEOMETRY                = CARTESIAN
   GEOMETRY                = CARTESIAN
Line 46: Line 57:


=== user_defined_parameters.h ===
=== user_defined_parameters.h ===
   UNIT_DENSITY                    (1e-0)
   UNIT_DENSITY                    (1e-0)
   UNIT_LENGTH                    (CONST_Rsun)
   UNIT_LENGTH                    (CONST_Rsun)

Revision as of 23:46, 14 January 2026

Alexanders Setups

lin_T-Grad

init.c

InitDomain()

  • lineares \(T\)-Profil gemäß IC_Temperature_X2BEG_K> IC_Temperature_X2END_K
  • ideales Gas: isotherme Kompressibilität = \(1/P \Rightarrow \tilde c^2=P/\rho=k_BT/m\)
  • Druck-DGL \(\partial_y P=-Pg/\tilde c^2(T) \Rightarrow P(y)\) numerisch mit RB \(P(y_\text{min})=10^9\)bar
  • Dichteprofil aus \(\rho=P/\tilde c^2(T)\), beide Profile ggf. von unten gedeckelt durch RHO_min aus Restrictions.conf
  • \(v_y\) gestört durch Sinus mit Wellenlänge = Systembreite/IC_Perturbation_mode und Amplitude IC_Perturbation_Amplitude_cs × \(\exp(-\vert y_\text{rel}-1/2\vert)\)

UserDefBoundary()

am oberen Rand(X2_END):

  • BC_Outflow_NoInflow für \(v_y\) und \(\rho \Rightarrow\) BC_ZeroGradient für \(P\)
  • BC_ZeroGradient für \(v_x\) (und \(v_z\))


analytisch

Für einen linearen Verlauf \(T=T_0-T'\, y\) mit \(T'=(T_0-T_1)/L_y\) können Druck- und Dichteprofil analytisch bestimmt werden, Letzteres lautet \[ \rho(y)=\frac{P_0\,m}{k_\text{B}T_0}\left(1-\frac{T'}{T_0}y\right)^{\alpha-1} \qquad,\qquad \alpha = \frac{mg}{k_\text{B}T'} \] Für eine "Inversionslage" muss \(\alpha<1\) gelten.


pluto.ini

  • Grid = [0.0,0.1] x [1.0,1.1]
  • Boundary = [periodic,periodic] x [reflective,userdef]
  • Anfangswerte:
 IC_Temperature_X2BEG_K          1e+6
 IC_Temperature_X2END_K          1e+5
 IC_Perturbation_mode            +5.0
 IC_Perturbation_Amplitude_cs    +0.3


bodyforce.c

konstante Beschleunigung in \(-y\)-Richtung:

 g[JDIR] = - G_GravityConstant * SolarMass / (SolarRadius*SolarRadius);


makefile_user_simulationdefs

 DIMENSIONS              = 2
 GEOMETRY                = CARTESIAN
 BODY_FORCE              = VECTOR
 EOS                     = IDEAL


user_defined_parameters.h

 UNIT_DENSITY                    (1e-0)
 UNIT_LENGTH                     (CONST_Rsun)
 UNIT_VELOCITY                   (CONST_Rsun * CONST_c / CONST_ly)
 
 IC_Temperature_X2BEG_K      
 IC_Temperature_X2END_K      
 IC_Perturbation_mode      
 IC_Perturbation_Amplitude_cs