temet.ICs package
Submodules
temet.ICs.CoffeeICs module
Original coffee problem ICs for AREPO.
temet.ICs.GasCloud_Hernquist module
Idealized ICs: hydrostatic equilibrium gas sphere in a Hernquist potential.
- GasRho(r)
- HaloRho(r)
- Rho(r)
- GasMass(r)
- HaloMass(r)
- Mass(r)
- Sigma_Integrand(r)
- Sigma(r)
- run()
temet.ICs.GasCloud_NFW module
Idealized ICs: hydrostatic equilibrium gas sphere in a NFW potential.
- GasRho(r)
- HaloRho(r)
- Rho(r)
- GasMass(r)
- HaloMass(r)
- Mass(r)
- Omega(r)
- Sigma_Integrand(r)
- Sigma(r)
- Potential(r)
- run()
temet.ICs.GasCloud_NFW_tracers module
Idealized ICs: hydrostatic equilibrium gas sphere in a Hernquist potential (with Monte Carlo tracers).
- GasRho(r)
- HaloRho(r)
- Rho(r)
- GasMass(r)
- HaloMass(r)
- Mass(r)
- Omega(r)
- Sigma_Integrand(r)
- Sigma(r)
- Potential(r)
- run()
temet.ICs.KelvinHelmholtz module
Idealized initial conditions: kelvin-helmholtz instability.
- create_ics(numPartPerDim=64, filename='ics.hdf5')
Create idealized ICs for KH instability in 2D.
- create_ics2(numPartPerDim=64, filename='ics.hdf5')
Different strategy, without angle, but with a higher density center (optional).
temet.ICs.ResimMakePartLoad module
Cosmological zoom/resimulation ICs: step one, i.e. handle functionality previously in P-Resim-MakePartLoad.
Step two is to run the external program N-GenICResim on the generated particle load.
- generate(sP, fofID, ZoomFactor=1, EnlargeHighResFactor=3.0)
Create zoom particle set (Coordinates) and save. After this file is done, create ICs as:
srun -n 8 ./N-GenICResim param.txt partload_file.hdf5.- Parameters:
sP (
simParams) – simulation instance, with redshift corresponding to the selected fofID.fofID (int) – the target halo (fof) ID to zoom on.
ZoomFactor (int) – resolution boost of high-res region, in linear particle spacing, so total highres particles increases as ZoomFactor**3 while mass decreases by ZoomFactor**3 (1 = no increase beyond original, 2 = x8 mass resolution, 3 = x27 mass resolution, 4 = x64 mass resolution).
EnlargeHighResFactor (float) – set spatial size of high-res region, multiplicative factor on FoF volume.
- Returns:
None. IC file written to disk.
- generate_set()
Driver.
temet.ICs.Shocks2D_ICs module
Idealized initial conditions: shocks/implosion/discontinuity/”2D Riemann” tests in 2D. Following Schulz-Rinne (1993), Kurganov & Tadmor (2002), Liska & Wendroff (2003). http://www-troja.fjfi.cvut.cz/%7Eliska/CompareEuler/compare8/
- create_ics(numPartPerDim=200, config=1, filename='ics.hdf5')
Create idealized ICs of Rosswog+ (2019) tests.
temet.ICs.YeeVortex_ICs module
Idealized initial conditions: Yee Vortex.
temet.ICs.readSpoonMesh module
Read mesh file for idealized ICs of “3D spoon” problem.
temet.ICs.sedov_solution module
Idealized ICs: analytical solution of the 3D Sedov blast wave, given the ICs, at some time t. Inspired by the version from SWIFT.
- calc_a(g, nu=3)
exponents of the polynomials of the sedov solution g - the polytropic gamma nu - the dimension
- calc_beta(v, g, nu=3)
beta values for the sedov solution (coefficients of the polynomials of the similarity variables) v - the similarity variable g - the polytropic gamma nu- the dimension
- sedov(t, E0, rho0, g=1.6666666666666667, n=1000, nu=3)
Solve the sedov problem.
- Parameters:
time (t -)
energy (E0 - initial)
density (rho0 - initial)
on (n - number of points to compute solution)
dimensionality (nu -)
gamma (g - polytropic gas)
- solution_cgs(time_kyr=1.0)
- plot_timeseries()
Run this one.
- plot_rshock_vs_time()
Run this one too.
temet.ICs.sod module
Analytic/exact solutions to 1D shocktube problems. Originally from https://gitlab.com/fantaz/Riemann_exact/blob/master/sod.py with modifications.
- shock_tube_function(p4, p1, p5, rho1, rho5, gamma)
Shock tube equation
- calculate_regions(pl, ul, rhol, pr, ur, rhor, gamma=1.4)
Compute regions :rtype : tuple :return: returns p, rho and u for regions 1,3,4,5 as well as the shock speed
- calc_positions(pl, pr, region1, region3, w, xi, t, gamma)
- Returns:
tuple of positions in the following order -> Head of Rarefaction: xhd, Foot of Rarefaction: xft, Contact Discontinuity: xcd, Shock: xsh
- region_states(pl, pr, region1, region3, region4, region5)
- Returns:
dictionary (region no.: p, rho, u), except for rarefaction region where the value is a string.
- create_arrays(pl, pr, xl, xr, positions, state1, state3, state4, state5, npts, gamma, t, xi, x_arr=None)
- Returns:
tuple of x, p, rho and u values across the domain of interest
- solve(left_state, right_state, geometry, t, gamma=1.4, npts=500, x_arr=None)
Solves the Sod shock tube problem (i.e. riemann problem) of discontinuity across an interface.
:rtype : tuple :param left_state: tuple (pl, rhol, ul) :param right_state: tuple (pr, rhor, ur) :param geometry: tuple (xl, xr, xi): xl - left boundary, xr - right boundary, xi - initial discontinuity :param t: time for which the states have to be calculated :param gamma: ideal gas constant, default is air: 1.4 :param npts: number of points for array of pressure, density and velocity :param x_arr: if not None, then compute solution exactly at these points :return: tuple of: dicts of positions, constant pressure, density and velocity states in distinct regions, arrays of pressure, density and velocity in domain bounded by xl, xr
temet.ICs.utilities module
Idealized initial conditions: utility (common) functions.
- write_ic_file(fileName, partTypes, boxSize, massTable=None, headerExtra=None)
Helper to write a HDF5 IC file. partTypes is a dictionary with keys of the form PartTypeX, each of which is its own dictionary of particle fields and ndarrays. boxSize is a scalar float, and massTable a 6-element float array, if specified.
- visualize_result_2d(basePath)
Helper function to load density_field_NNN projection files and plot a series of PNG frames.
- histogram_result_2d(basePath)
Helper function to load density_field_NNN projection files and plot histograms across the time series, to see range.
Module contents
Initial condition generation. Note that with the exception of the zoom functionality
inside ICs.ResimMakePartLoad, everything else here pertains to idealized
simulations with typically non-cosmological integrations and non-cosmological unit systems.