Peano
Loading...
Searching...
No Matches
fv-tracers-vertical-plume-rise Namespace Reference

Functions

 generate_particles_on_vertical_line (file_path, num_particles=100, x_fixed=0.5, y_min=0.1, y_max=0.9)
 Generates a .dat file with particles uniformly spaced along a vertical line at x = x_fixed.
 

Variables

 parser
 
dict interpolation_methods
 
 default
 
 help
 
dict integration_schemes
 
dict gravity_models
 
 min_depth
 
 degrees_of_freedom
 
 end_time
 
 args = parser.parse_args()
 
list size = [3.0, 3.0]
 
list offset = [0.0, 0.0]
 
float max_h = 1.1 * min(size) / (3.0**args.min_depth)
 
float min_h = max_h * 3.0 ** (-args.amr_levels)
 
 project
 
float time_in_between_plots = 0.0
 
 dimensions
 
 min_end_time
 
 max_end_time
 
 first_plot_time_stamp
 
 periodic_BC
 
str initial_conditions
 
str boundary_conditions
 
str flux
 
str max_eigenvalue
 
str analytical_solution
 
 fv_solver
 

Function Documentation

◆ generate_particles_on_vertical_line()

fv-tracers-vertical-plume-rise.generate_particles_on_vertical_line ( file_path,
num_particles = 100,
x_fixed = 0.5,
y_min = 0.1,
y_max = 0.9 )

Generates a .dat file with particles uniformly spaced along a vertical line at x = x_fixed.

Parameters: file_path (str): Path to save the .dat file. num_particles (int): Number of particles to generate. x_fixed (float): Fixed x-coordinate for all particles. y_min (float): Minimum y-coordinate. y_max (float): Maximum y-coordinate.

Definition at line 27 of file fv-tracers-vertical-plume-rise.py.

Variable Documentation

◆ analytical_solution

str fv-tracers-vertical-plume-rise.analytical_solution
Initial value:
1= """
2 // Analytical solution for linear plume rise with exponential velocity growth in y-direction
3 constexpr double a = 0.5; // Velocity gradient coefficient
4
5 // Initial particle position (x0, y0)
6 const double x0 = particle->getData(1); // x doesn't change
7 const double y0 = particle->getData(2); // Used to reconstruct y(t) analytically
8
9 // Time-dependent solution
10 solution[0] = x0; // x(t) = x0 (no x motion)
11 solution[1] = y0 * exp(a * t); // y(t) = y0 * e^(a t)
12
13 // Fluid velocity field at particle position
14 solution[3] = 0.0; // fluid_u (x-direction)
15 solution[4] = a * solution[1]; // fluid_v = a * y
16
17 // Particle velocity (matches fluid)
18 solution[5] = 0.0; // u = dx/dt
19 solution[6] = a * solution[1]; // v = dy/dt
20
21 // Particle acceleration
22 solution[7] = 0.0; // a_x
23 solution[8] = a * a * solution[1]; // a_y = d^2y/dt^2 = a^2 * y(t)
24
25 solution[2] = 1.0; // rho
26 solution[9] = 1.0; // mass
27"""

Definition at line 155 of file fv-tracers-vertical-plume-rise.py.

◆ args

fv-tracers-vertical-plume-rise.args = parser.parse_args()

Definition at line 96 of file fv-tracers-vertical-plume-rise.py.

◆ boundary_conditions

fv-tracers-vertical-plume-rise.boundary_conditions
Initial value:
1= """
2 // Reflective boundary conditions
3 Qoutside[Shortcuts::rho] = Qinside[Shortcuts::rho];
4 Qoutside[Shortcuts::rhoU + 0] = -Qinside[Shortcuts::rhoU + 0];
5 Qoutside[Shortcuts::rhoU + 1] = -Qinside[Shortcuts::rhoU + 1];
6 Qoutside[Shortcuts::rhoE] = Qinside[Shortcuts::rhoE];
7"""

Definition at line 137 of file fv-tracers-vertical-plume-rise.py.

◆ default

fv-tracers-vertical-plume-rise.default

Definition at line 65 of file fv-tracers-vertical-plume-rise.py.

◆ degrees_of_freedom

fv-tracers-vertical-plume-rise.degrees_of_freedom

Definition at line 92 of file fv-tracers-vertical-plume-rise.py.

◆ dimensions

fv-tracers-vertical-plume-rise.dimensions

Definition at line 117 of file fv-tracers-vertical-plume-rise.py.

◆ end_time

fv-tracers-vertical-plume-rise.end_time

Definition at line 93 of file fv-tracers-vertical-plume-rise.py.

◆ first_plot_time_stamp

fv-tracers-vertical-plume-rise.first_plot_time_stamp

Definition at line 122 of file fv-tracers-vertical-plume-rise.py.

◆ flux

fv-tracers-vertical-plume-rise.flux
Initial value:
1= """
2 for (int i = 0; i < NumberOfUnknowns; i++) {
3 F[i] = 0.0;
4 }
5"""

Definition at line 145 of file fv-tracers-vertical-plume-rise.py.

◆ fv_solver

fv-tracers-vertical-plume-rise.fv_solver
Initial value:
1= exahype2.solvers.fv.godunov.GlobalFixedTimeStep(
2 name="FVSolver",
3 patch_size=args.degrees_of_freedom,
4 unknowns={"rho": 1, "rhoU": 2, "rhoE": 1},
5 auxiliary_variables=0,
6 min_volume_h=min_h,
7 max_volume_h=max_h,
8 normalised_time_step_size=0.01,
9)

Definition at line 183 of file fv-tracers-vertical-plume-rise.py.

◆ gravity_models

dict fv-tracers-vertical-plume-rise.gravity_models
Initial value:
1= {
2 "None": 0, # No gravity (straight-line motion)
3 "Central": 1, # Central gravitational force (1/r²) from a fixed point
4 "Custom": 2, # User-defined gravitational field
5}

Definition at line 81 of file fv-tracers-vertical-plume-rise.py.

◆ help

fv-tracers-vertical-plume-rise.help

Definition at line 65 of file fv-tracers-vertical-plume-rise.py.

◆ initial_conditions

fv-tracers-vertical-plume-rise.initial_conditions
Initial value:
1= """
2 Q[Shortcuts::rho] = 1.0;
3 Q[Shortcuts::rhoU + 0] = 0.0; // rho * u_x
4 Q[Shortcuts::rhoU + 1] = 0.5 * x(1); // rho * u_y
5 Q[Shortcuts::rhoE] = 1.0; // Simple energy (rho*e)
6"""

Definition at line 130 of file fv-tracers-vertical-plume-rise.py.

◆ integration_schemes

dict fv-tracers-vertical-plume-rise.integration_schemes
Initial value:
1= {
2 "Static": 0, # No integration (static particles)
3 "Euler": 1, # Explicit Euler method (simple but less accurate)
4 "SemiEuler": 2, # Semi-implicit Euler method (better stability)
5 "Verlet": 3, # Velocity Verlet algorithm (good for orbital mechanics)
6 "Midpoint": 4, # Midpoint method (2nd order Runge-Kutta)
7 "RK3": 5, # 3rd order Runge-Kutta method (high accuracy)
8 "RK4": 6, # 4th order Runge-Kutta method (higher accuracy)
9}

Definition at line 68 of file fv-tracers-vertical-plume-rise.py.

◆ interpolation_methods

dict fv-tracers-vertical-plume-rise.interpolation_methods
Initial value:
1= {
2 "None": 0, # No interpolation (use raw values)
3 "Constant": 1, # Piecewise constant interpolation (nearest neighbor)
4 "Linear": 2, # Piecewise linear interpolation (more accurate)
5}

Definition at line 59 of file fv-tracers-vertical-plume-rise.py.

◆ max_eigenvalue

fv-tracers-vertical-plume-rise.max_eigenvalue
Initial value:
1= """
2 return 1.0;
3"""

Definition at line 151 of file fv-tracers-vertical-plume-rise.py.

◆ max_end_time

fv-tracers-vertical-plume-rise.max_end_time

Definition at line 121 of file fv-tracers-vertical-plume-rise.py.

◆ max_h

float fv-tracers-vertical-plume-rise.max_h = 1.1 * min(size) / (3.0**args.min_depth)

Definition at line 100 of file fv-tracers-vertical-plume-rise.py.

◆ min_depth

fv-tracers-vertical-plume-rise.min_depth

Definition at line 91 of file fv-tracers-vertical-plume-rise.py.

◆ min_end_time

fv-tracers-vertical-plume-rise.min_end_time

Definition at line 120 of file fv-tracers-vertical-plume-rise.py.

◆ min_h

float fv-tracers-vertical-plume-rise.min_h = max_h * 3.0 ** (-args.amr_levels)

Definition at line 101 of file fv-tracers-vertical-plume-rise.py.

◆ offset

fv-tracers-vertical-plume-rise.offset = [0.0, 0.0]

Definition at line 99 of file fv-tracers-vertical-plume-rise.py.

◆ parser

fv-tracers-vertical-plume-rise.parser
Initial value:
1= exahype2.ArgumentParser(
2 "ExaHyPE 2 - Finite Volumes Particle Tracing Testing Script"
3)

Definition at line 55 of file fv-tracers-vertical-plume-rise.py.

◆ periodic_BC

fv-tracers-vertical-plume-rise.periodic_BC

Definition at line 124 of file fv-tracers-vertical-plume-rise.py.

◆ project

fv-tracers-vertical-plume-rise.project
Initial value:
1= exahype2.Project(
2 namespace=["tests", "exahype2", "fv"],
3 project_name=".",
4 directory=".",
5 executable="ExaHyPE",
6)

Definition at line 103 of file fv-tracers-vertical-plume-rise.py.

◆ size

fv-tracers-vertical-plume-rise.size = [3.0, 3.0]

Definition at line 98 of file fv-tracers-vertical-plume-rise.py.

◆ time_in_between_plots

fv-tracers-vertical-plume-rise.time_in_between_plots = 0.0

Definition at line 111 of file fv-tracers-vertical-plume-rise.py.