[ET Trac] [Einstein Toolkit] #1531: GRHydro updates

Einstein Toolkit trac-noreply at einsteintoolkit.org
Mon Jan 27 13:26:20 CST 2014


#1531: GRHydro updates
------------------------------------+---------------------------------------
  Reporter:  rhaas                  |       Owner:                     
      Type:  enhancement            |      Status:  review             
  Priority:  major                  |   Milestone:                     
 Component:  EinsteinToolkit thorn  |     Version:  development version
Resolution:                         |    Keywords:  GRHydro EOS_Omni   
------------------------------------+---------------------------------------
Changes (by rhaas):

  * status:  new => review


Comment:

 0001-add-barotropic-tabular-EOS-functionality-for-initial.patch::
 this adds tabulated EOS that only depend on density (ie that are cold)
  0002-Major-bug-fix-in-EOS_Omni-nuc_eos.-In-the-code-befor.patch::
 this fixes a bug where incosistent values were returned for the tabulated
 EOS
 when data was outside of the table bounds
  0003-EOS_Omni-re-add-poly_gamma_initial.patch::
 poly_gamma_ini used to exist in EOS_Omni and cause problems for unwary
 users.
 It was removed some time ago, but apparently still used.
 poly_gamma_initial is
 a tame version of poly_gamma_ini which defaults to poly_gamma and thus
 does
 not have to be set whenever poly_gamma is changed away from its default
  0004-new-nuc_eos-backend-in-c.patch::
 complete rewrite of tabulated EOS driver. Changes internal layout of table
 in
 memory, optimizes how data is stored. Should be a drop in replacement for
 user
 code.
  0005-improved-checking-of-keytemp.patch::
 changes keytemp to a enumeration of values rather than a boolean
  0006-EOS_Omni-use-CCTK_ERROR-add-STOP-after-CCTK_ERROR.patch::
 tries to help the compiler notice thta CCTK_ERROR never returns since we
 do
 not provide an __attribute__((noreturn)) for CCTK_Error (since there is no
 prototype for it)
  0007-EOS_Omni-remove-unnecessary-make.code.deps.patch::
 removes explicitly listed dependencies that Cactus can compute itself
  0008-EOS_Omni-remove-__restrict__-in-favor-of-restrict-si.patch::
 search and replace for {{{__restrict__}}}
  0009-EOS_Omni-use-Cactus-error-reporting-functions-in-rea.patch::
 changes fprintf(stderr,...) to CCTK_VError
  0010-EOS_Omni-declare-global-variables-restrict.patch::
 adds restrict to the EOS tables
  0011-EOS_Omni-add-comments-and-TODOs.patch::
 not code change, just comments
  0012-EOS_Omni-use-explicit-temporary-for-loop-upper-bound.patch::
 low level optimization to tell the compiler that the upper bound in
 constant
  0013-EOS_Omni-always-set-anyerr-when-an-error-is-detected.patch::
 bugfix to correclyt report error when the eos call fails
  0014-EOS_Omni-low-level-optimizations.patch::
 various low level optimizations that do not affect the returned values
 beyond
 roundoff level
  0015-EOS_Omni-move-actual-table-data-into-namespace-of-it.patch::
 code cleanup
  0016-make-new-EOS-call-that-returns-press-and-cs2-and-eps.patch::
 add optimized EOS call that is used by GRHydro to compute speed of sound
 and
 pressure at the same time, this removes the EOS call from the Riemann
 solvers
  0017-EOS_Omni-add-code-for-test-case-to-C-version.patch::
 adds the test case back to the thorn, same data, just different code
  0018-EOS_Omni-nuc_eos_cxx-ensure-cs2-is-0-or-positive.patch::
 this makes sure that the results are not unphysical


  10001-GRHydro-rewrite-HLLEM-without-if-flux_direction-in-i.patch::
 this removes if statements at the expense of having non-constant integer
 offsets added to i,j,k
  10002-GRHydro-remove-divergence-cleaning-code-from-Avec-ev.patch::
 the vector potential evolution cannot use divergence cleaning
  10003-GRHydro-add-STOP-statement-after-CCTK_ERROR.patch::
 tell the compiler that CCTK_ERROR never returns
  10004-GRHydro-Simplify-logical-expression.patch::
 turns an if-else into a boolean operation
  10005-GRHydro-remove-unused-source-file-GRHydro_PPM.c.patch::
 removes unused (and uncompiled) file leftover from first attempt at PPM
  10006-GRHydro-change-prim2con-EOS-calls-to-calls-for-x-sli.patch::
 call EOS on slices rather than the full grid function. This avoids having
 to
 have an OMP version of the EOS routines.
  10007-GRHydro-start-changes-for-improved-EOS-and-HLLE-hand.patch::
 computes cs2 along with pressure
  10008-GRHydro-compute-pressure-in-prim2con-only-where-need.patch::
 changes loop boundaries from "everything" to "interior"
  10009-GRHydro-add-hllc-solver.patch::
 adds a hllc riemann solver. Based on Matt Duez' notes.
  10010-GRHydro-add-hllc-shock-tube-test.patch::
 test case for hllc
  10011-GRHydro-New-C-ePPM-algorithm.patch::
 add enhanced PPM to C++ PPM code
  10012-GRHydro-adjust-loop-bounds-in-C-PPM-to-match-F90-cod.patch::
 bugfixes
  10013-GRHydro-correct-vel-slicing-in-optimized-C-PPM-recon.patch::
 bugfixes
  10014-GRhydro-correct-argument-types-for-oned_slice-and-un.patch::
 bugfixes
  10015-GRHydro-fix-z-direction-in-optimized-C-PPM.patch::
 bugfixes
  10016-GRHydro-add-MHD-multipatch-support-to-optimized-C-PP.patch::
 adds the multipatch boilerplate code to set up g11 etc
  10017-GRHydro-support-array-padding-in-optimized-C-PPM.patch::
 use cctk_ash for memory allocation and indexing
  10018-GRHydro-remove-string-comparisons-from-C-PPM-driver.patch::
 optimization
  10019-GRHydro-unify-usage-of-a-0-vs-a.patch::
 code cleanup
  10020-GRHydro-C-PPM-enable-OMP-bugfixes.patch::
 code cleanup and OpenMP code (mostly just moving array allocation inside
 the
 OMP parallel part)
  10021-GRHydro-reconstruct_Wv-for-ePPM-oPPM.patch::
 adds possibility to reconstruct w_lorentz*vel[] which is not constrained
 so
 cannot be superluminal to C++ PPM code
  10022-GRHydro-C-version-of-HLLE.patch::
 re-implements HLLE in C++
  10023-GRHydro-HLLE.cc-MHD-implementation.patch::
 adds MHD to HLLE
  10024-GRHydro-New-reconstruction-interface.-All-in-templat.patch::
 framework to handle all reconstruction operators in C++. Independent (and
 different) from what was used for PPM.
  10025-GRHydro-add-MP5-reconstruct.patch::
 MP5 reconstruction in C++ framework
  10026-GRHydro-add-WENO-reconstruct.patch::
 WENO (as in WHAM paper, WENO-Z) in C++ framework
  10027-GRHydro-add-Trivial-copy-reconstruct.patch::
 trivial reconstruction is just a copy from cell centers to the edges, used
 to
 initialize edge values (was an explict copy in F90 code)
  10028-GRHydro-add-TVD-reconstruct.patch::
 TVD reconstruction in C++ framework
  10029-GRHydro-implement-sources-in-C.patch::
 GRHydro source terms in C++ code

 To use the C++ code one currently has to set use_cxx_code to true.
 Otherwise
 the old F90 code is used. Currently the two codes are similar (since the
 C++
 code often started out as a transcription of the F90 code) but they are
 beginning to diverge. I expect that the F90 will be abandoned and most new
 deveopment will happen on the C++ code.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1531#comment:1>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list