https://github.com/astrobarker/heimdall
Helpful Eos Investigative Multi-Dimensional thornAdo anaLysis tooL (HEIMDALL)
https://github.com/astrobarker/heimdall
Last synced: 5 months ago
JSON representation
Helpful Eos Investigative Multi-Dimensional thornAdo anaLysis tooL (HEIMDALL)
- Host: GitHub
- URL: https://github.com/astrobarker/heimdall
- Owner: AstroBarker
- License: gpl-3.0
- Created: 2020-07-22T01:19:14.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2021-05-03T02:02:36.000Z (about 5 years ago)
- Last Synced: 2025-10-23T20:02:33.705Z (9 months ago)
- Language: Julia
- Homepage:
- Size: 114 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# heimdall
Helpful Eos Investigative Multi-Dimensional thornAdo anaLysis tooL (HEIMDALL)
Complementary equation of state (EoS) analysis code for [thornado](https://github.com/endeve/thornado) [[1](https://iopscience.iop.org/article/10.1088/1742-6596/1225/1/012014)] [[2](https://trace.tennessee.edu/cgi/viewcontent.cgi?article=3333&context=utk_chanhonoproj)].
_Heimdall_ contains FORTRAN routines to call _thornado_'s EoS routines. The main purpose is to obtain thermodynamic derivatives as interpolated from the
tabulated nuclear EoS. These routines are called by a Julia wrapper to construct the derivatives and other quantities such as the eigenvector matrices for
characteristic limiting.
# Setup
_Heimdall_ is built on Julia, so that needs to be [installed](https://julialang.org/downloads/). After that, _heimdall_ just needs
_thornado_'s environment variables to be set:
* `THORNADO_DIR` - path to this _THORNADO_ directory, e.g. export THORNADO_DIR=${HOME}/path/to/thornado
* `WEAKLIB_MODELS` - path to weaklib directory
# Useage
Assuming that _thornado_ and _weaklib_ are set up correctly, you should just be able to `make`.
You may import Heimdall and the reader with the following:
```
include("ReadThornado.jl")
include("heimdall.jl")
using .Heimdall
```
Then you may, for example, import a profile and construct the thermodynamic derivatives:
```
data = load_thornado_single(dataDir,
fileNumber="000000", run="GravitationalCollapse");
data = cell_average(data, nNodes);
dd = Heimdall.ComputeDerivatives_Pressure(data.uCF_D, data.uCF_E, data.uCF_Ne, ones(nx), ones(nx), ones(nx), Units_Option=true);
```
Coming Soon: A pre-compiled executable to compute derivatives and write to file for exporting.
# TODO:
* Use [PackageCompiler.jl](https://github.com/JuliaLang/PackageCompiler.jl) to create an executable version.
* May need a new "composite type" for holding data that is unit - aware?
* Add geometry fields to reader.
* Write methods for 2D data.
* Implement Multi-D stuff and things