#558: Carpet with Periodic Boundary Conditions
-----------------------------+----------------------------------------------
Reporter: hfinkel@… | Owner: eschnett
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Carpet | Version:
Keywords: carpet periodic |
-----------------------------+----------------------------------------------
The current Carpet driver is not compatible with the periodic boundary
conditions (as provided by the Periodic thorn or otherwise).
Erik's comment on the User's list was:
"It is straightforward to implement periodicity in the grid structure
-- one needs to take the current grid structure, shift it in the 26
directions, and take the logical union of all 27 grid structures. This
will then be automatically clipped. The most complex part is
calculating by how much to shift."
Please implement support for periodic BCs in Carpet. This will directly
enable production science runs.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/558>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#120: Improve built-in help system
-------------------------+--------------------------------------------------
Reporter: hinder | Owner: mthomas
Type: enhancement | Status: new
Priority: major | Milestone:
Component: SimFactory | Version:
Keywords: |
-------------------------+--------------------------------------------------
SimFactory currently provides a single help screen when you type "sim
help". I would like to be able to do "sim help <command>" and get help
which is relevant for that command. This help should say briefly what the
command does, and give a comprehensive list of the options specific to
that command. The top-level "sim help" command should then give a list of
the commands, and a list of the simfactory options which apply to all
commands. This first help page should be kept as brief as possible so
that it is easy to see at a glance what commands are available. The most
common commands should be listed first, and maybe separated from the less
common commands.
I think this is important as it is the first port-of-call when someone
wants to know how to use a particular feature, especially when the syntax
is similar but not quite the same as in SimFactory 1.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/120>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#747: 9th order prolongation test fails with REAL_PRECISION=4
--------------------+-------------------------------------------------------
Reporter: hinder | Owner: eschnett
Type: defect | Status: new
Priority: major | Milestone:
Component: Carpet | Version:
Keywords: |
--------------------+-------------------------------------------------------
If I set REAL_PRECISION=4 in my option list (single precision), Carpet
will not run. This is because it performs self-tests on startup of the
prolongation operators, and my guess is that single precision is
insufficient for the 9th order operators.
{{{
WARNING[L1,P0] (CarpetLib): Error in prolongate_3d_rf2::coeffs_3d_rf2
RT=CCTK_REAL4
ORDER=9
n=6
y0=0, res=9.53674e-07
WARNING[L1,P0] (CarpetLib): Error in prolongate_3d_rf2::coeffs_3d_rf2
RT=CCTK_REAL4
ORDER=9
n=6
y0=0, res=9.53674e-07
WARNING[L1,P0] (CarpetLib): Error in prolongate_3d_rf2::coeffs_3d_rf2
RT=CCTK_REAL4
ORDER=9
n=8
y0=0, res=1.52588e-05
WARNING[L1,P0] (CarpetLib): Error in prolongate_3d_rf2::coeffs_3d_rf2
RT=CCTK_REAL4
ORDER=9
n=8
y0=0, res=1.52588e-05
WARNING level 0 in thorn CarpetLib processor 0 host MacBook-2.local
(line 98 of
/Users/ian/Cactus/EinsteinToolkit/arrangements/Carpet/CarpetLib/src/prolongate_3d_rf2.cc):
-> Aborting.
WARNING level 0 in thorn CarpetLib processor 0 host MacBook-2.local
(line 98 of
/Users/ian/Cactus/EinsteinToolkit/arrangements/Carpet/CarpetLib/src/prolongate_3d_rf2.cc):
-> Aborting.
}}}
I propose that the final warning should be changed to level 1 unless that
order of prolongation has actually be requested for the run. In my case,
I'm doing unigrid and don't care about prolongation. I don't know how to
test the type (what type of object is "RT"?) in this template function.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/747>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#750: Unable to compile Vectors with REAL_PRECISION = 4
---------------------------+------------------------------------------------
Reporter: barry.wardell | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: Other | Version:
Keywords: |
---------------------------+------------------------------------------------
When I try to compile the Vectors thorn with the REAL_PRECISION = 4
option, I get lots of errors when compiling test.cc:
{{{
test.cc: In function 'void Vectors_Test(cGH*)':
test.cc:130:28: error: 'vec4_store' was not declared in this scope
test.cc:132:32: error: 'vec4_store_nta' was not declared in this scope
test.cc:144:46: error: 'vec4_store_partial_prepare' was not declared in
this scope
test.cc:145:39: error: 'vec4_store_nta_partial' was not declared in this
scope
test.cc:158:14: error: assignment of read-only location '* & p'
test.cc:158:14: error: '_mm_storel_ps' was not declared in this scope
test.cc:158:14: error: assignment of read-only location '*((& p) + 8u)'
test.cc:163:14: error: assignment of read-only location '*((& p) + 12u)'
test.cc:163:14: error: '_mm_storeh_ps' was not declared in this scope
test.cc:163:14: error: assignment of read-only location '*((& p) + 4u)'
test.cc:169:58: error: 'vec4_store_nta_partial_mid' was not declared in
this scope
test.cc:188:3: error: 'k4cos' was not declared in this scope
test.cc:196:3: error: 'k4sin' was not declared in this scope
test.cc:198:3: error: 'k4tan' was not declared in this scope
test.cc:200:3: error: cannot convert 'const __m128 {aka const __vector(4)
float}' to '__m128i {aka __vector(2) long long int}' for argument '1' to
'__m128i _mm_srai_epi32(__m128i, int)'
test.cc:202:3: error: cannot convert 'const __m128 {aka const __vector(4)
float}' to '__m128i {aka __vector(2) long long int}' for argument '1' to
'__m128i _mm_srai_epi32(__m128i, int)'
test.cc:204:3: error: cannot convert 'const __m128 {aka const __vector(4)
float}' to '__m128i {aka __vector(2) long long int}' for argument '1' to
'__m128i _mm_srai_epi32(__m128i, int)'
test.cc:205:3: error: cannot convert 'const __m128 {aka const __vector(4)
float}' to '__m128i {aka __vector(2) long long int}' for argument '1' to
'__m128i _mm_srai_epi32(__m128i, int)'
test.cc:207:3: error: cannot convert 'const __m128 {aka const __vector(4)
float}' to '__m128i {aka __vector(2) long long int}' for argument '1' to
'__m128i _mm_srai_epi32(__m128i, int)'
test.cc:209:3: error: cannot convert 'const __m128 {aka const __vector(4)
float}' to '__m128i {aka __vector(2) long long int}' for argument '1' to
'__m128i _mm_srai_epi32(__m128i, int)'
test.cc:211:3: error: cannot convert 'const __m128 {aka const __vector(4)
float}' to '__m128i {aka __vector(2) long long int}' for argument '1' to
'__m128i _mm_srai_epi32(__m128i, int)'
test.cc:212:3: error: cannot convert 'const __m128 {aka const __vector(4)
float}' to '__m128i {aka __vector(2) long long int}' for argument '1' to
'__m128i _mm_srai_epi32(__m128i, int)'
}}}
These are mostly a result of missing definitions in vectors-4-SSE.h which
should be added.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/750>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#543: Change diff format in GetDomponents
---------------------------+------------------------------------------------
Reporter: eschnett | Owner: eric9
Type: enhancement | Status: new
Priority: major | Milestone:
Component: GetComponents | Version:
Keywords: |
---------------------------+------------------------------------------------
It would be convenient to change the format of GetComponent's --diff
command to output diffs that can be directly applied via "patch -p0"
from the main Cactus directory. That is, file names such as
"a/Tools/CodeGen/Schedule.m" should be changed to
"repos/Kranc/Tools/CodeGen/Schedule.m".
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/543>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#734: McLachlan triggers arithmetic exception (but results are fine)
-----------------------------------------+----------------------------------
Reporter: wolfgang.kastaun@… | Type: defect
Status: new | Priority: minor
Milestone: | Component: Other
Version: | Keywords: McLachlan
-----------------------------------------+----------------------------------
If I enable floating point exceptions for debugging purposes, they are
triggered by McLachlan in the routine
ML_BSSN_convertToADMBaseDtLapseShift_Body.
The guilty line is
568
kfmin(ToReal(1),kmul(INV(rL),ToReal(SpatialBetaDriverRadius)));
the involved values are
(gdb) p rL
$1 = 0
(gdb) p SpatialBetaDriverRadius
$2 = 1000000000000
This only happens once per grid, apparently at the origin.
The results look fine otherwise, no NaNs or INFs propagated, but this is
annoying when debugging other code, trying to find the first time a NaN is
produced.
ET version is the Maxwell release.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/734>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#666: have CarpetIOScalar output grid scalar directly rather than applying
reductions to them
-------------------------+--------------------------------------------------
Reporter: rhaas | Owner: eschnett
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Carpet | Version:
Keywords: |
-------------------------+--------------------------------------------------
Carpet already assumes that these grid scalars have the same value on all
processors. So reducing them does not generate any information that is not
already present by just looking at a single value.
The attached patch outputs grid scalars (from the root processor)
directly, this means that grid scalar output files can be used to output
timeseries like grid scalars (which is what many are).
The attached parfile and data files are a modfied version of a QLM test.
Notice how much nicer to read the scalar output *.scalar.asc is then the
0D output *..asc.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/666>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#744: Define API for finding out which MPI processes share a host
-------------------------+--------------------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Cactus | Version:
Keywords: |
-------------------------+--------------------------------------------------
This API could be a flesh API, provided by the driver, or could be
implemented via aliased functions.
For example:
int CCTK_nHosts(cGH*)
int CCTK_MyHost(cGH*)
Probably also functions for mapping:
process <-> (host, hostprocess)
host -> (list of processes)
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/744>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#749: provide funtion fasterp_setup_t::outofdate()
-------------------------+--------------------------------------------------
Reporter: rhaas | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Other | Version:
Keywords: |
-------------------------+--------------------------------------------------
CarpetInterp2 tests if a fasterp_setup_t object is out of date (older than
the current regridding epoch) before it uses it. It would be useful to
export this test to user code so that they can check each time they want
to interpolate if they have to re-create the setup object. the attached
(trivial) patch does so. It has the advantage of hiding the internal
decision criterion from the user. Better names welcome.
Will apply on Monday unless there are objections.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/749>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
#682: LSUThorns/Vectors: Simplify API for partial vector stores
-------------------------+--------------------------------------------------
Reporter: eschnett | Owner:
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Other | Version:
Keywords: |
-------------------------+--------------------------------------------------
Implement vec_store_nta_partial, which offers a simpler interface,
similar to the one used in OpenCL.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/682>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit