#1251: Use Parsing Expression Grammar for Par Files
-------------------------+--------------------------------------------------
Reporter: sbrandt | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Other | Version:
Keywords: |
-------------------------+--------------------------------------------------
Piraha is a parsing framework/library based on Parsing Expression Grammars
(PEGs). This allows you to define the grammar of a language using a
simple regular-expression-type language, and Piraha will use this to
decode an input file into a hierarchical data structure of the parsed data
(a "parse tree"). See http://code.google.com/p/piraha-peg/,
http://en.wikipedia.org/wiki/Parsing_expression_grammar.
I've hacked a version of Cactus to use Piraha for parameter parsing.
Please take a look:
https://svn.cactuscode.org/flesh/branches/with_piraha
This version is able to run the ET testsuite.
This version can understand the variables $parfile, $ENV{name}, and $pi
(which is 3.14...). Variables can be standalone, or be substituted from
inside strings.
It can understand mathematical expressions including grouping, order of
operation, and a few functions (sin, cos, tan, exp, sqrt). Other
parameters from the parameter file are available for use in mathematical
expressions.
Some debug printing is in place so you can get an idea of what's going on.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1251>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1066: Implement IMEX integrators in MoL
-----------------------------------+----------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: |
-----------------------------------+----------------------------------------
Dana Alic contributed an implementation of IMEX integrators for MoL.
I attach the implementation as a patch (based on r133 of MoL). The
implementation is well tested. The patch does not apply cleanly, and seems
to make some modifications to the schedule etc. as well that have since
been superseded by other changes to MoL.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1066>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#652: CACTUS_CONFIGS_DIR should be documented
-------------------------+--------------------------------------------------
Reporter: knarf | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
At the moment CACTUS_CONFIGS_DIR is only mentioned in doc/FAQ. It should
be documented in the regular documentation as well.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/652>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#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
#1372: AHFinderDirect/misner1.2-025 test fails on datura in ET_2013_05 release
branch
-----------------------------------+----------------------------------------
Reporter: hinder | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: EinsteinToolkit thorn | Version:
Keywords: AHFinderDirect |
-----------------------------------+----------------------------------------
AHFinderDirect/misner1.2-025 test fails on datura in ET_2013_05 release
branch. Diffs are:
{{{
BH_diagnostics.ah1.gp: differences below tolerance on 1 lines
BH_diagnostics.ah2.gp: differences below tolerance on 1 lines
h.t0.ah1.gp: differences below tolerance on 703 lines
h.t0.ah2.gp: differences below tolerance on 698 lines
sf_area[0].xg: differences below tolerance on 1 lines
sf_min_radius[0].xg: differences below tolerance on 1 lines
sf_radius[0]_2D.asc: differences below tolerance on 496 lines
sf_radius[1]_2D.asc: substantial differences
significant differences on 5 (out of 1058) lines
maximum absolute difference in column 3 is 1.75718694541256e+243
maximum relative difference in column 3 is 2899588673.18783
(insignificant differences on 37 lines)
}}}
Since this does not fail in the ubuntu test VM, it might be something to
do with the Intel compiler vs GCC.
According to http://einsteintoolkit.org/release-
info/parse_testsuite_results.php, it seems that this test was failing on a
number of machines for a while.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1372>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1254: Simplify SimFactory's get-output-dir command
-------------------------+--------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: SimFactory | Version:
Keywords: |
-------------------------+--------------------------------------------------
Currently, sim get-output-dir returns:
{{{
Simulation name: <simname>
Output directory: <basedir>/<simname>/output-NNNN/<parbasename>
}}}
I think most uses of this command would be in shell scripts, where it
would be easier to use if it only output the actual output directory. The
first line is redundant, as the user has already specified the simulation
name. Also, simfactory is appending the <parbasename>, and assuming that
such a directory exists and contains some useful data. Without parsing
the parameter file and duplicating cactus logic, it cannot know where the
actual data is. I think simfactory should just give the output-0000
directory, and leave it up to the user to figure out where to find the
data in there. The attached patch implements this change. OK to apply?
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1254>
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
#1303: document syntax of new parameter file parser
--------------------+-------------------------------------------------------
Reporter: rhaas | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: Cactus | Version:
Keywords: |
--------------------+-------------------------------------------------------
currently we have no documentation as to what format the new parser
accepts. As a matter of fact the documentation in the UsersGuide (see
http://einsteintoolkit.org/documentation/UsersGuide/UsersGuidech7.html#x10-…)
is in contradiction with what the parser will allow:
{{{
* The parameter file is read sequentially from top to bottom, this means
that if you set the value of a parameter twice in the parameter file, the
second value will be used.
* String parameter values can be specified either as unquoted tokens (not
containing any whitespace), or as quoted values. If a quoted string
parameter value spans multiple lines, all whitespaces, including newline
characters, are preserved.
}}}
which will fail. Actually the first one is already incorrect with the
current implementation which does not allow a parameter to be set twice
(since this is often a sign of a user error).
While this is "just" documentation, I'll still flag it as major since the
parser is so fundamental.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1303>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#1306: problem with creating a new project with an existing cactus directory
----------------------------------------+-----------------------------------
Reporter: srichers@… | Owner: sbrandt
Type: defect | Status: new
Priority: minor | Milestone:
Component: Mojave | Version:
Keywords: |
----------------------------------------+-----------------------------------
When a new project is created and fed the location of a local Cactus
directory, the Mojave 'build' command does not work right away because it
tries to execute simfactory from the workspace directory. It would be nice
if the commands were executed in the existing directory rather than the
workspace one so the .mojave.xml file doesn't have to be changed. (or a
basedir variable in the mojave.xml file could be added and prepended to
each filename)
Also, the indexer does not work properly for new projects with an existing
cactus directory. It does not recognize anything (cactus types, functions
from other files, etc). It works somewhat better, though not completely,
if the Cactus directory is put into the appropriate folder in workspace/
before creating the project. (recognizes Cactus internals, but not e.g.
functions defined in other thorns)
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1306>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit