#963: Improve McLachlan accuracy
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
James van Meter provided me with an optimised version of McLachlan. He
states:
1. You are not taking full advantage of the chi=exp(-2phi) variable.
There are several terms you divide by chi or chi^2 in expressions with
overall factors exp(-4phi). I rewrote the BSSN equations to make these
cancellations before coding. So where you have an expression of the form
chi^2(A+B/chi^2), I have chi^2A+B. This gives a slight but noticeable
advantage in both accuracy and performance.
2. I added Hamiltonian-constraint-damping terms due to Duez et al. These
terms don't seem to be well-known but they are effective.
3. I added a Gamma-constraint-damping term due to Yo et al.
4. I enforce det(g)=1.
I have not tested this new version yet, but James suggests to include it
into the Einstein Toolkit.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/963>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#605: Simfactory does not find the right 'path' for symlinked cactus directories
------------------------+---------------------------------------------------
Reporter: knarf | Owner: eschnett
Type: defect | Status: new
Priority: minor | Milestone: ET_2011_10
Component: SimFactory | Version: development version
Keywords: |
------------------------+---------------------------------------------------
Simfactory currently does not detect the 'right' path to a Cactus
sourcetree if this is from within a symlink, e.g. Cactus ->
/mnt/data/Cactus. This is because while `pwd` returns '/home/user/Cactus',
simfactory uses a wrapper to the C-library getcwd(), which dereferences
symlinks. Simfactory then gets '/mnt/data/Cactus' and tries to use this
path on remote machines when syncing - which of course does not work.
The attached patch fixes this by using os.environ.get("PWD") and, if this
is not defined, using os.getcwd() as workaround.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/605>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#117: Error while building multiple configurations
------------------------+---------------------------------------------------
Reporter: eschnett | Owner: mthomas
Type: defect | Status: new
Priority: major | Milestone:
Component: SimFactory | Version:
Keywords: |
------------------------+---------------------------------------------------
I wanted to build multiple configurations at once with the command
./simfactory/sim build sim-debug sim
sim-debug is a debug configuration, sim is optimised. SimFactory built
sim-debug, then aborted with the error:
optionlist is: /Users/eschnett/EinsteinToolkit-hg/configs/sim/OptionList
Error: pattern '^\s*DEBUG\s*=.*$' exists already
It assumes that SimFactory doesn't properly distinguish between the
different build options of the different configurations.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/117>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#874: Reduce warnings during an ET build
--------------------+-------------------------------------------------------
Reporter: hinder | Owner:
Type: defect | Status: new
Priority: minor | Milestone:
Component: Other | Version:
Keywords: |
--------------------+-------------------------------------------------------
A new user of the ET might be disconcerted to see warnings during
compilation such as:
{{{
/home/ianhin/Cactus/EinsteinToolkit/arrangements/Carpet/CarpetLib/src/bboxset.hh(206):
warning #1224: #warning directive: "TODO: this is incorrect"
#warning "TODO: this is incorrect"
^
}}}
I propose that such directives are replaced with a comment and a link to a
TRAC ticket concerning the problem.
Further, we should aim to eliminate as many warnings as possible from the
build, similarly to avoid eroding confidence.
Warnings can also make it hard to find the real error messages, when a
build fails with errors.
Other warnings I see are similar to:
{{{
In file included from
/home/ianhin/Cactus/GBSC12/arrangements/CactusUtils/Formaline/src/thornlist.cc:13:
/home/ianhin/Cactus/GBSC12/configs/bbh/bindings/include/thornlist.h:61:
warning: deprecated conversion from
string constant to ‘char*’
}}}
{{{
/home/ianhin/Cactus/GBSC12/arrangements/EinsteinInitialData/TwoPunctures/src/Newton.c:
In function ‘TestRelax’:
/home/ianhin/Cactus/GBSC12/arrangements/EinsteinInitialData/TwoPunctures/src/Newton.c:287:
warning: passing
argument 6 of ‘resid’ from incompatible pointer type
/home/ianhin/Cactus/GBSC12/arrangements/EinsteinInitialData/TwoPunctures/src/Newton.c:75:
note: expected
‘const int * const restrict* const restrict’ but argument is of type ‘int
**’
}}}
{{{
/home/ianhin/Cactus/GBSC12/configs/bbh/bindings/Variables/ADMBase.c: In
function ‘CCTKi_BindingsFortranWrapperADMBase’:
/home/ianhin/Cactus/GBSC12/configs/bbh/bindings/Variables/ADMBase.c:34:
warning: passing argument 22 of ‘function’
from incompatible pointer type
/home/ianhin/Cactus/GBSC12/configs/bbh/bindings/Variables/ADMBase.c:34:
note: expected ‘const struct cGH * const*’
but argument is of type ‘struct cGH **’
}}}
This last warning appears very many times during a build (though I believe
it may be triggered only by GCC and not by the Intel compiler).
{{{
/home/ianhin/Cactus/GBSC12/src/main/Parameters.c: In function
‘ParameterSetBoolean’:
/home/ianhin/Cactus/GBSC12/src/main/Parameters.c:2394: warning: passing
argument 4 of ‘Util_ExpressionEvaluate’
discards qualifiers from pointer target type
/home/ianhin/Cactus/GBSC12/src/include/util_Expression.h:38: note:
expected ‘void *’ but argument is of type
‘const int *’
}}}
There are probably more as well.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/874>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#780: missing small packages
----------------------------------------------+-----------------------------
Reporter: knarf | Owner: dcastl2
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Einstein Toolkit Virtual Machine | Version:
Keywords: |
----------------------------------------------+-----------------------------
Some tools to be installed:
mmv
screen
tmux
texlive (probably quite large, but also probably necessary)
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/780>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1192: Speed up Hydro_InitExcision test cases
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
Hydro_InitExcision sets up an excision mask for hydrodynamics evolution.
It is active at initial and poststep (and postregrid), and its logic
depends only on parameters, not on the simulation state.
Its test cases take a very long time to run:
(1) Running this for 100 iterations with PUGH is overkill. 1 iteration
suffices, testing both initial and poststep.
(2) The excision mask is not even output! Instead, only the indirect
results on the hydro variables are tested.
(3) All test cases use PUGH, so Carpet's postregrid bin is not tested.
(4) Each test exists three times, for different reconstruction methods.
The reconstruction methods do not enter into this thorn's logic.
I conclude: The existing tests confirm that this thorn has the right
functionality. They are therefore important. However, they should not be
in the Cactus test suite.
We want regression tests in the Cactus test cases, and this could be
achieved about 100x faster (fewer iterations, fewer test cases).
Additionally, there should be Carpet tests, and the excision mask should
be output.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1192>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#456: Ensure functions are not defined twice
-------------------------+--------------------------------------------------
Reporter: hinder | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
When multiple source files define non-static functions with the same name,
these are all compiled together into the resulting executable. Which one
gets called is not predictable by the user.
This can happen if a user copies a thorn, modifies it slightly, and
compiles both thorns into the same configuration. This can lead to *very*
difficult-to-find bugs, and it would be helpful if Cactus was able to
prevent this, or at least to mitigate the problem.
At the CST level, Cactus should be able to tell that there are two thorns
which schedule functions with the same name. At the moment, this is not
caught. I propose that this should be a fatal error, as there is no way
to predict which function will be called eventually.
This will solve the problem in some cases, but not in the case where there
are instances of duplicate function names which are not scheduled. It
should be possible to scan the object/library files using standard tools
(nm etc) to determine if there are multiple globally visible symbols with
the same name. There might even be standard tools for this purpose.
Doing this in a portable way might not be straightforward, but having an
implementation for Linux, for example, would catch the majority of cases.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/456>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1195: Modify bisection algorithm in EOS_Omni's nuc_eos
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
EOS_Omni's nuc_eos routines use a bisection method to find the temperature
for a given internal energy. This bisects on the temperature T. I suggest
to bisect on log T instead, which is a more natural operation.
For example, if the temperature range is [1...1000] in some units, then
bisecting in T will examine the sequence 500, 250, 125, ..., and will thus
perform many table lookups until (say) T=10 is reached. Bisecting in log T
will find this result much faster.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1195>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#447: simfactory 1.0 always uses -L 3
----------------------------------------------+-----------------------------
Reporter: alexander.beck-ratzka@… | Owner: eschnett
Type: defect | Status: new
Priority: major | Milestone:
Component: SimFactory | Version:
Keywords: |
----------------------------------------------+-----------------------------
The perl version of simfactory always uses the debugging loglevel for
simulations. The loglevel of a cactus simulation can be specified by
setting -L to a value between 0 (none) and 3 (debug). While the cactus
default is 0, simfactory sets it to 3. The debug loglevel could lead to
huge output files.
I would suggest to set it to the cactus default, and allow a user to
increase it.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/447>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#107: Update released einsteintoolkit.bib once we have a more final version
-----------------------+----------------------------------------------------
Reporter: anonymous | Type: task
Status: new | Priority: major
Milestone: | Component: EinsteinToolkit website
Version: | Keywords:
-----------------------+----------------------------------------------------
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/107>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit