Ambiguities in Radiation Transport Documentation #635
Unanswered
hwhitehead
asked this question in
Q&A
Replies: 1 comment 1 reply
-
On Tue, Nov 19, 2024 at 12:22 PM Henry Whitehead ***@***.***> wrote:
I have a series of questions concerning the non-relativistic radiation
transfer module. There is some overlap with a previous thread here
<#605>, but I
feel that there is enough new content to warrant a second post.
Sigma versus Kappa
The code requires various "sigma" values be defined as opacities for each
frequency bin. On the documentation page
<https://github.com/PrincetonUniversity/athena/wiki/Non-relativistic-Radiation-Transport>,
this is stated to be $\sigma = \rho \kappa$, but in the pgen for the
thermal_multigroup.cpp
<https://github.com/PrincetonUniversity/athena/blob/master/src/pgen/thermal_multigroup.cpp>,
the $\sigma$ value for electron scattering is set directly to kappa_es,
is this code snippet in error?
density =1 for this test problem.
https://github.com/PrincetonUniversity/athena/blob/ee2b2c761df84aa863c38d2964854c4cf2c70145/src/pgen/thermal_multigroup.cpp#L133
Rosseland Mean Opacity
In the previous thread
<#605>, I asked
if there was a mistake in the documentation
<https://github.com/PrincetonUniversity/athena/wiki/Non-relativistic-Radiation-Transport>,
which states that sigma_s + sigma_a is the Rosseland mean opacity. From
the associated code paper
<https://iopscience.iop.org/article/10.3847/1538-4365/ac9231/pdf> it
seems to me that sigma_s is the scattering opacity and sigma_a is the
Rosseland opacity. This appears to be substantiated in radiation.hpp
where the two arrays are defined
https://github.com/PrincetonUniversity/athena/blob/ee2b2c761df84aa863c38d2964854c4cf2c70145/src/nr_radiation/radiation.hpp#L54-L55
Should sigma_a be the Rosseland mean, or should sigma_s + sigma_a be the
Rosseland mean?
Rosseland mean refers to the way to calculate the mean opacity. Both
sigma_s and sigma_a are averaged opacities using rosseland mean. For a
typical opacity table (such as OPAL), they will give you Rosseland mean
opacity that refers to the sum of sigma_a and sigma_s.
Hope this is clear.
Angular Grids
There is not a lot of information about the angular grid configuration
available in the github documentation. If I wished to only track radiation
along the cardinal directions of a Cartesian grid ($x$, $y$, $z$), how
could this be configured using the nzeta and npsi input variables? I am
assuming nzeta=2, npsi=3 to give n_ang = nzeta*npsi/2 = 3 in 3D, but I am
not sure. Would n_oct also need to be set to 1? Including some diagrams
in the documentation might make this a little clearer.
The angle system typically does not set an angular grid that is exactly
along the coordinate system. A typical angular grid will be saved to a file
Rad_angles.txt if you run the code, where the file tells you the
projections of all the angles to each coordinate (n_x, n_y, n_z). So in
short, existing angular grid does not support angles just along x, y z
coordinates.
Outputting Data
There is currently no information in the output documentation
<https://github.com/PrincetonUniversity/athena/wiki/Outputs> concerning
the radiation routine. Are users required to write their own output
routines for radiation based quantities e.g. mean intensity in each cell,
or is there support for naming variables in the <output> block of the
input file?
The hdf5 output file
<https://github.com/PrincetonUniversity/athena/blob/master/src/outputs/athena_hdf5.cpp>
appears to add variables to the dataset if radiation is enabled, but I am
not so familiar with this area of the code and so it is not obvious to me
what is being saved.
https://github.com/PrincetonUniversity/athena/blob/ee2b2c761df84aa863c38d2964854c4cf2c70145/src/outputs/athena_hdf5.cpp#L143-L144
Could additions be made to the documentation to make it clear what is
being saved, or what needs to be handled by the user in uov?
If you specify prim or cons, the output will include moments of the
specific intensities (radiation energy density E_r, radiation flux F_r,
radiation pressure P_r tensor, opacities) all in code unit. The variables
with _0 refer to co-moving frame quantities.
… Apologies for the number of questions, but I wanted to make sure I had a
strong basis before I started running things.
—
Reply to this email directly, view it on GitHub
<#635>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCWEJ6ZGBORNP7VTUKSRDD2BNXSPAVCNFSM6AAAAABSCUR3QKVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZXGUYTINJYG4>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
--
Best,
Yan-Fei Jiang
Research Scientist,
CCA, Flatiron Institute,
162 Fifth Avenue
New York, NY 10010
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I have a series of questions concerning the non-relativistic radiation transfer module. There is some overlap with a previous thread here, but I feel that there is enough new content to warrant a second post.
Sigma versus Kappa
The code requires various "sigma" values be defined as opacities for each frequency bin. On the documentation page, this is stated to be$\sigma = \rho \kappa$ , but in the pgen for the thermal_multigroup.cpp, the $\sigma$ value for electron scattering is set directly to
kappa_es
, is this code snippet in error?athena/src/pgen/thermal_multigroup.cpp
Line 133 in ee2b2c7
Rosseland Mean Opacity
In the previous thread, I asked if there was a mistake in the documentation, which states that
sigma_s + sigma_a
is the Rosseland mean opacity. From the associated code paper it seems to me thatsigma_s
is the scattering opacity andsigma_a
is the Rosseland opacity. This appears to be substantiated inradiation.hpp
where the two arrays are definedathena/src/nr_radiation/radiation.hpp
Lines 54 to 55 in ee2b2c7
Should
sigma_a
be the Rosseland mean, or shouldsigma_s + sigma_a
be the Rosseland mean?Angular Grids
There is not a lot of information about the angular grid configuration available in the github documentation. If I wished to only track radiation along the cardinal directions of a Cartesian grid ($x$ , $y$ , $z$ ), how could this be configured using the
nzeta
andnpsi
input variables? I am assumingnzeta=2
,npsi=3
to given_ang = nzeta*npsi/2 = 3
in 3D, but I am not sure. Wouldn_oct
also need to be set to 1? Including some diagrams in the documentation might make this a little clearer.Outputting Data
There is currently no information in the output documentation concerning the radiation routine. Are users required to write their own output routines for radiation based quantities e.g. mean intensity in each cell, or is there support for naming variables in the
<output>
block of the input file?The hdf5 output file appears to add variables to the dataset if radiation is enabled, but I am not so familiar with this area of the code and so it is not obvious to me what is being saved.
athena/src/outputs/athena_hdf5.cpp
Lines 143 to 144 in ee2b2c7
Could additions be made to the documentation to make it clear what is being saved, or what needs to be handled by the user in
uov
?Apologies for the number of questions, but I wanted to make sure I had a strong basis before I started running things.
Beta Was this translation helpful? Give feedback.
All reactions