WARPXM v1.10.0
|
Namespaces | |
namespace | bc |
Classes | |
class | CurrentDensity |
Class that calculates the current gradient J from deritives of B: That is, J = skin_depth_norm * curl(B) More... | |
class | CylSource |
Implements the source terms in the resistitive diffusion terms that are added to Ideal MHD to produce the resistive MHD equations arising from a cylindrical geometry. More... | |
class | DensityDiffusionCylSource |
Cylindrical source for density diffusion in the MHD model. More... | |
class | DensityDiffusionFlux |
Density diffusion flux for the MHD model. More... | |
class | ElectricField |
Class that calculates the electric field from Ohm's Law using ideal and resistive terms E = -u x B + (dp/L) * (nupt) * eta * J. More... | |
class | ohmic_source_t |
class that calculates a source associated with reduced Ohmic heating More... | |
class | WmApplication_Resistive_Diffusion |
Functions | |
real | current_density_cart (const real skin_depth_norm, const real *grad_B[3], real *J) |
real | current_density_cyl (const real skin_depth_norm, const real r, const real *B, const real *grad_B[3], const int ir, const int ith, const int iz, real *J) |
real | get_eta (const real *q, const real J[3], const bool const_resistivity, const real constant_resistivity_eta, const std::string resistivity_type, const real max_eta, const real min_eta, const real n_vac, const real eta_vac, const real gas_gamma, const real ompt, const real nupt, const real lnlam=10.0, const real Ai=1.0, const real Zi=1.0, const real Ae=1.0/1836.0, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon()) |
real | get_resistivity (const real *q, const real gas_gamma, const real lnlam=10, const real Ai=1.0, const real Zi=1.0, const real Ae=1.0/1836.0, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon()) |
Compute Spitzer-like resistivity. | |
real | get_resistivity_chodura (const real *q, const real J[3], const real gas_gamma, const real ompt, const real nupt, const real lnlam=10, const real Ai=1.0, const real Zi=1.0, const real Ae=1.0/1836.0, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon()) |
Compute Chodura resistivity. | |
real | rmhd_internal_diffusion_flux (const real nu_p_norm, const real skin_depth_norm, const solverVariables_t *pSV, const real *q, const real *J, const real eta, std::vector< std::vector< real > > &internal_diffusion_flux) |
void | noslipWallCondition_MHD (const real gas_gamma, const solverVariables_t *pSV, const real *QC, const real vx_w, const real vy_w, const real vz_w, const real bx_w, const real by_w, const real bz_w, real *QC_w, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon()) |
real | set_time_step (const solverVariables_t *pSV, const real j_coefficient, const real diffusion_coefficient, const real eta, const real cfl_diff=0.5) |
Suggested time step calculation for RMHD resistive diffusion. | |
real wxm::apps::rmhd::current_density_cart | ( | const real | skin_depth_norm, |
const real * | grad_B[3], | ||
real * | J | ||
) |
real wxm::apps::rmhd::current_density_cyl | ( | const real | skin_depth_norm, |
const real | r, | ||
const real * | B, | ||
const real * | grad_B[3], | ||
const int | ir, | ||
const int | ith, | ||
const int | iz, | ||
real * | J | ||
) |
real wxm::apps::rmhd::get_eta | ( | const real * | q, |
const real | J[3], | ||
const bool | const_resistivity, | ||
const real | constant_resistivity_eta, | ||
const std::string | resistivity_type, | ||
const real | max_eta, | ||
const real | min_eta, | ||
const real | n_vac, | ||
const real | eta_vac, | ||
const real | gas_gamma, | ||
const real | ompt, | ||
const real | nupt, | ||
const real | lnlam = 10.0 , |
||
const real | Ai = 1.0 , |
||
const real | Zi = 1.0 , |
||
const real | Ae = 1.0/1836.0 , |
||
const real | rho_min = std::numeric_limits< real >::epsilon() , |
||
const real | press_min = std::numeric_limits< real >::epsilon() |
||
) |
real wxm::apps::rmhd::get_resistivity | ( | const real * | q, |
const real | gas_gamma, | ||
const real | lnlam = 10 , |
||
const real | Ai = 1.0 , |
||
const real | Zi = 1.0 , |
||
const real | Ae = 1.0/1836.0 , |
||
const real | rho_min = std::numeric_limits< real >::epsilon() , |
||
const real | press_min = std::numeric_limits< real >::epsilon() |
||
) |
Compute Spitzer-like resistivity.
Compute Spitzer-like resistivity [Goldston and Rutherford IoP (1995), Eq. 11.29] note that for parallel resistivity, this is ~2x too large; see [G&R Eq. 11.31 and associated discussion]
The normalized eta is (see Datta dissertation Appx. A (Eq. A.2.1) for normalization):
\[ \eta = \sqrt{2} Z_i \ln(\lambda) A_e^{0.5} T_e^{-1.5} \]
q | The raw MHD variables. |
gas_gamma | Ratio of specific heats. |
lnlam | Coulomb logarithm. |
Ai | Proton normalized ion mass. |
Zi | Ion charge. |
Ae | Proton normalized electron mass. |
rho_min | Normalized minimum mass density. |
press_min | Normalized minimum mass density. |
real wxm::apps::rmhd::get_resistivity_chodura | ( | const real * | q, |
const real | J[3], | ||
const real | gas_gamma, | ||
const real | ompt, | ||
const real | nupt, | ||
const real | lnlam = 10 , |
||
const real | Ai = 1.0 , |
||
const real | Zi = 1.0 , |
||
const real | Ae = 1.0/1836.0 , |
||
const real | rho_min = std::numeric_limits< real >::epsilon() , |
||
const real | press_min = std::numeric_limits< real >::epsilon() |
||
) |
Compute Chodura resistivity.
Compute Chodura resistivity [Sgro and Nielson, Phys. Fluids 1976].
q | The raw MHD variables. |
J | Current density. |
gas_gamma | Ratio of specific heats. |
ompt | Normalized proton plasma frequency. |
nupt | Normalized proton-proton collision frequency. |
lnlam | Coulomb logarithm. |
Ai | Proton normalized ion mass. |
Zi | Ion charge. |
Ae | Proton normalized electron mass. |
rho_min | Normalized minimum mass density. |
void wxm::apps::rmhd::noslipWallCondition_MHD | ( | const real | gas_gamma, |
const solverVariables_t * | pSV, | ||
const real * | QC, | ||
const real | vx_w, | ||
const real | vy_w, | ||
const real | vz_w, | ||
const real | bx_w, | ||
const real | by_w, | ||
const real | bz_w, | ||
real * | QC_w, | ||
const real | rho_min = std::numeric_limits< real >::epsilon() , |
||
const real | press_min = std::numeric_limits< real >::epsilon() |
||
) |
real wxm::apps::rmhd::rmhd_internal_diffusion_flux | ( | const real | nu_p_norm, |
const real | skin_depth_norm, | ||
const solverVariables_t * | pSV, | ||
const real * | q, | ||
const real * | J, | ||
const real | eta, | ||
std::vector< std::vector< real > > & | internal_diffusion_flux | ||
) |
real wxm::apps::rmhd::set_time_step | ( | const solverVariables_t * | pSV, |
const real | j_coefficient, | ||
const real | diffusion_coefficient, | ||
const real | eta, | ||
const real | cfl_diff = 0.5 |
||
) |
Suggested time step calculation for RMHD resistive diffusion.
dB/dt + curl [ nuptau * (dp/L)^2 * eta * curl B ] = 0 j_coefficient = dp/L diffusion_coefficient = nuptau * (dp/L)
for diffusive time step limit:
pSV | Struct of elemenent geometry related information. |
j_coefficient | dp/L |
diffusion_coefficient | nuptau * (dp/L) |
eta | Resistivity. |
cfl_diff | Coefficient on the CFL for diffusion. Default 0.5. |