ExaHyPE issueshttps://gitlab.lrz.de/groups/exahype/-/issues2018-11-13T18:10:26+01:00https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/258Minfy JSON (filter out comments and son) before deserialisation2018-11-13T18:10:26+01:00Ghost UserMinfy JSON (filter out comments and son) before deserialisationThe JSON parser allows specifying a callback for this purpose:
```
/** [...]
@param[in] i input to read from
@param[in] cb a parser callback function of type @ref parser_callback_t
which is used to control the deseriali...The JSON parser allows specifying a callback for this purpose:
```
/** [...]
@param[in] i input to read from
@param[in] cb a parser callback function of type @ref parser_callback_t
which is used to control the deserialization by filtering unwanted values
(optional)
*/
static basic_json parse(detail::input_adapter&& i,
const parser_callback_t cb = nullptr,
const bool allow_exceptions = true)
```https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/257AMR_bug Test Case Crashes2019-09-20T15:42:20+02:00Ghost UserAMR_bug Test Case CrashesThe test case seems to crash now for all configurations.
I created pseudocode for the whole AMR program flow.
After I finished writing up, I will simplify the AMR program
flow another time.The test case seems to crash now for all configurations.
I created pseudocode for the whole AMR program flow.
After I finished writing up, I will simplify the AMR program
flow another time.https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/256CarpetHDF5 Writer lacks Dataset support2018-11-01T17:30:43+01:00Ghost UserCarpetHDF5 Writer lacks Dataset supportfrom rug:
```
realname = hfile["Parameters and Global Attributes/Datasets"].value.decode("ascii")[:-1]
```
lacks dataset name
```
sven@nils:/tmp/hdf5$ rug window -f 'log10(y)' whatever.h5 0
Traceback (most recent call last):
...from rug:
```
realname = hfile["Parameters and Global Attributes/Datasets"].value.decode("ascii")[:-1]
```
lacks dataset name
```
sven@nils:/tmp/hdf5$ rug window -f 'log10(y)' whatever.h5 0
Traceback (most recent call last):
File "/home/sven/bin/rug", line 265, in <module>
modules.call(args)
File "/home/sven/numrel/ET/rugutils/modules.py", line 68, in call
return function(**given_args)
File "/home/sven/numrel/ET/rugutils/window.py", line 173, in window
realname, struct = read_file_structure(hfile, name)
File "/home/sven/numrel/ET/rugutils/read_hdf5.py", line 165, in read_file_structure
realname = hfile["Parameters and Global "
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (/build/h5py-qzs83i/h5py-2.7.1/h5py/_objects.c:2847)
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/build/h5py-qzs83i/h5py-2.7.1/h5py/_objects.c:2805)
File "/usr/lib/python3/dist-packages/h5py/_hl/group.py", line 167, in __getitem__
oid = h5o.open(self.id, self._e(name), lapl=self._lapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (/build/h5py-qzs83i/h5py-2.7.1/h5py/_objects.c:2847)
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/build/h5py-qzs83i/h5py-2.7.1/h5py/_objects.c:2805)
File "h5py/h5o.pyx", line 190, in h5py.h5o.open (/build/h5py-qzs83i/h5py-2.7.1/h5py/h5o.c:3738)
KeyError: "Unable to open object (object 'Datasets' doesn't exist)"
```https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/255Add toolkit option for specifying thread stack size2019-09-20T15:46:25+02:00Ghost UserAdd toolkit option for specifying thread stack sizeChanges affect "shared_memory" section in JSON schema, the C++ Parser, and the Runner's "initSharedMem..."
routine.Changes affect "shared_memory" section in JSON schema, the C++ Parser, and the Runner's "initSharedMem..."
routine.https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/254Finite Volumes Kernel Issues2019-09-20T15:43:37+02:00Ghost UserFinite Volumes Kernel IssuesA list of known issues with the FV kernels.
This list is open for extension. It may be split into separate issues
later on.
* MUSCL-Hancock implementation is second-order accurate but allows unlimited slopes
in the first ghost layer at ...A list of known issues with the FV kernels.
This list is open for extension. It may be split into separate issues
later on.
* MUSCL-Hancock implementation is second-order accurate but allows unlimited slopes
in the first ghost layer at corners and edges of the patch. This caused certain applications to crash.
* Stack allocation of multiple temporary arrays leads to Seg Faults for applications where these arrays
become huge (e.g. CCZ4). (This issue might be resolved after issue #255 has been resolved.)
* No (JM) optimisation has been performed yet. For most applications, the FV updates
are bandwith-bound indicating potential for speedups by vectorisation.https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/253Optimised kernels and AMR application do not work together2018-09-21T12:07:11+02:00Ghost UserOptimised kernels and AMR application do not work togetherWhen I run the Euler_ADERDG application with an adaptive grid and the optimised kernels,
I compute a time step size of approx. zero after the first time step. The simulation terminates.
The generic kernels do thousands of time steps with...When I run the Euler_ADERDG application with an adaptive grid and the optimised kernels,
I compute a time step size of approx. zero after the first time step. The simulation terminates.
The generic kernels do thousands of time steps without any complaints for the same problem.
The optimised kernels work without problems for the same application when uniform grids are used.
Files
* [specification file (text file)](/uploads/d25264d843ed7f543cf1a3b4e01a6d26/temp)
* [output generic kernels (text file)](/uploads/10715a9248f96b814909c75a5b333fbc/temp)
* [output optimised kernels (text file)](/uploads/a87857d5bf68669a97085bf8450db026/temp)https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/252Toolkit validation shows non-deterministic behaviour2018-09-21T11:30:46+02:00Ghost UserToolkit validation shows non-deterministic behaviourI discovered that the toolkit validation shows non-deterministic behaviour.
I use a specification file where I remove the 'cores' option which is required
in the 'shared_memory' section.
The validation does not complain in some runs but...I discovered that the toolkit validation shows non-deterministic behaviour.
I use a specification file where I remove the 'cores' option which is required
in the 'shared_memory' section.
The validation does not complain in some runs but fails correctly in other
runs.
1. It works the first time (it shouldn't as the 'shared_memory/core' is missing.
```
17:14 $ ../../../Toolkit/toolkit.sh -v -format=any ../Euler_ADERDG.exahype
controller.py:77(__init__):INFO
______ __ __ ____ ______
/ ____/ ______ _/ / / /_ __/ __ \/ ____/ *************************
/ __/ | |/_/ __ `/ /_/ / / / / /_/ / __/ The ExaHyPE Toolkit v2
/ /____> </ /_/ / __ / /_/ / ____/ /___ www.exahype.eu
/_____/_/|_|\__,_/_/ /_/\__, /_/ /_____/ Commit: 77efa02
/____/ *************************
This project has received funding from the European Union's Horizon 2020
research and innovation programme under grant agreement No 671698 (ExaHyPE).
Copyright (c) 2018, All rights reserved
ExaHyPE is based on the PDE framework Peano (www.peano-framework.org).
Released under the BSD 3 Open Source License.
controller.py:85(__init__):INFO Read input file /home/dominic/dev/codes/c/upstream/ExaHyPE-Engine/ApplicationExamples/Euler/Euler_ADERDG.exahype.
omni_reader.py:46(__init__):INFO 4 file formats registered: json,hjson,exahype-v1,mexa
omni_reader.py:156(read):INFO No specific file format requested, trying all available file formats in order.
omni_reader.py:124(read_omni):INFO Trying to read file format json
omni_reader.py:136(read_omni):INFO The input file is certainly not written in the format json as a ParserError occured: Expecting value: line 1 column 1 (char 0)
omni_reader.py:124(read_omni):INFO Trying to read file format hjson
omni_reader.py:130(read_omni):INFO Cannot check file format hjson because neccessary library is not installed. The missing library is: No module named 'hjson'
omni_reader.py:131(read_omni):INFO Will silently ignore this problem
omni_reader.py:124(read_omni):INFO Trying to read file format exahype-v1
specfile1_reader.py:521(read_lines):INFO Converting legacy specification file (95 lines) to INI file...
specfile1_reader.py:523(read_lines):INFO OK
specfile1_reader.py:532(read_lines):INFO Mapping INI structure to JSON input object...
specfile1_reader.py:534(read_lines):INFO OK
omni_reader.py:126(read_omni):INFO Success reading file format exahype-v1
directories.py:37(check):INFO Peano kernel path: /home/dominic/dev/codes/c/upstream/ExaHyPE-Engine/Peano ... ok
directories.py:37(check):INFO Peano kernel path: /home/dominic/dev/codes/c/upstream/ExaHyPE-Engine/Peano holds tarch ... ok
[...]
/Euler_ADERDG/Makefile'
controller.py:152(run):INFO please change into directory /home/dominic/dev/codes/c/upstream/ExaHyPE-Engine/./ApplicationExamples/Euler/Euler_ADERDG and type make
ensure that you set all environment variables before:
export COMPILER=GNU Select GNU compiler
export COMPILER=Intel Select Intel compiler (default)
[...]
export USE_IPO=on Compile using IPO for the solvers and kernels (only with Intel compilers)
If USE_IPO is not specified, it falls back to "off" (compilation without IPO).
If you run CSH, please replace "export ARG=VALUE" with "setenv ARG VALUE".
```
2. It fails the second time which is the correct behaviour:
```
✔ ~/dev/codes/c/upstream/ExaHyPE-Engine/ApplicationExamples/Euler/Euler_ADERDG [master|✚ 16…1135⚑ 58]
17:18 $ ../../../Toolkit/toolkit.sh -v -format=any ../Euler_ADERDG.exahype
rm: cannot remove ‘*.o’: No such file or directory
rm: cannot remove ‘cipofiles.mk’: No such file or directory
rm: cannot remove ‘ffiles.mk’: No such file or directory
rm: cannot remove ‘cfiles.mk’: No such file or directory
rm: cannot remove ‘kernels’: No such file or directory
controller.py:77(__init__):INFO
______ __ __ ____ ______
/ ____/ ______ _/ / / /_ __/ __ \/ ____/ *************************
/ __/ | |/_/ __ `/ /_/ / / / / /_/ / __/ The ExaHyPE Toolkit v2
/ /____> </ /_/ / __ / /_/ / ____/ /___ www.exahype.eu
/_____/_/|_|\__,_/_/ /_/\__, /_/ /_____/ Commit: 77efa02
/____/ *************************
This project has received funding from the European Union's Horizon 2020
research and innovation programme under grant agreement No 671698 (ExaHyPE).
Copyright (c) 2018, All rights reserved
ExaHyPE is based on the PDE framework Peano (www.peano-framework.org).
Released under the BSD 3 Open Source License.
controller.py:85(__init__):INFO Read input file /home/dominic/dev/codes/c/upstream/ExaHyPE-Engine/ApplicationExamples/Euler/Euler_ADERDG.exahype.
omni_reader.py:46(__init__):INFO 4 file formats registered: json,hjson,exahype-v1,mexa
omni_reader.py:156(read):INFO No specific file format requested, trying all available file formats in order.
omni_reader.py:124(read_omni):INFO Trying to read file format json
omni_reader.py:136(read_omni):INFO The input file is certainly not written in the format json as a ParserError occured: Expecting value: line 1 column 1 (char 0)
omni_reader.py:124(read_omni):INFO Trying to read file format hjson
omni_reader.py:130(read_omni):INFO Cannot check file format hjson because neccessary library is not installed. The missing library is: No module named 'hjson'
omni_reader.py:131(read_omni):INFO Will silently ignore this problem
omni_reader.py:124(read_omni):INFO Trying to read file format exahype-v1
specfile1_reader.py:521(read_lines):INFO Converting legacy specification file (95 lines) to INI file...
specfile1_reader.py:523(read_lines):INFO OK
specfile1_reader.py:532(read_lines):INFO Mapping INI structure to JSON input object...
specfile1_reader.py:534(read_lines):INFO OK
omni_reader.py:126(read_omni):INFO Success reading file format exahype-v1
controller.py:218(validateAndSetDefaults):ERROR Specification file does not hold a valid ExaHyPE specification, it did not pass the schema validation step. The error message is: 'cores' is a required property
```https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/251Ideas for new sweep features2018-11-13T18:01:05+01:00Ghost UserIdeas for new sweep features* The change to toolkit2 did change the set of compile-time parameters. I consider to
have a mandatory INI file parameter where the user specifies what parameter change requires a
rebuild of the application. This would however requi...* The change to toolkit2 did change the set of compile-time parameters. I consider to
have a mandatory INI file parameter where the user specifies what parameter change requires a
rebuild of the application. This would however require more care from the user's side.
* Have a plug-in point for parsers: The main functionality of sweep is spawning jobs for a parameter set and
then associating this parameter set with an output file. It then allows to parse the output file and
puts the result into CSV tables where the parameters are representing the key entries and the values parsed from
the output file the value entries of a row.
In theory, it should be easy to provide a plug-in point for user parsers.
Those parsers could be listed in the INI file.
* Have a validation procedure. Have a versioning system.https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/250Issue with Limiting ADER-DG combined with Material Parameters2018-09-13T12:31:58+02:00Ghost UserIssue with Limiting ADER-DG combined with Material ParametersMaurizio's observations
-----------------------
1. If I use the linear kernerl for the "linear elastic part", the NCP term is called sometime with Q==0, so since one component contains the density it divide by 0 at a certain time and th...Maurizio's observations
-----------------------
1. If I use the linear kernerl for the "linear elastic part", the NCP term is called sometime with Q==0, so since one component contains the density it divide by 0 at a certain time and this destroy the solution. In this case if I simply add a check on Q, like if(max(|Q|)<1.e-13) return zero, then it seems to work fine. Also this is strange but maybe we have to better undestand exactly where the wrong call take place.
2. If I use parameters for the material and the linear kernel it seems to work fine.
3. If I use parameters for the material in combination with the limiter, godunov limiter-type, I get a completelly wrong (and unstable) solution, even if I simply add the parameters in the spec file but I don't really use them in the PDE system. In this case if I use musclhancock I simply does not get the solution due to an error in the first time step.
TODOs:
--------------
We currently do not know if it is a problem of the coupling or of the
FV solvers.
1. ~~Does the pure FV solver work correctly with parameters?~~ Yes. It appears so.
2. Does the nonlinear limiting ADER-DG solver work correctly with parameters? No, as shown below.
An error appears at the interface of ADER-DG and FV cells in an experiment where a local recomputation
is performed.
![image](/uploads/549ee942b71bf6adc4640a8555147257/image.png)
~~This might indicate that the DG->FV projectors are still wrong. Sometimes I wish someone wrote some proper unit tests ;-)~~
Apparently, the error does not appear if the limiter domain is static. This would imply
that projectors are correct ~~but something goes wrong in the recomputation.~~
![image](/uploads/c13830aa15de648ff5b73d2d0edbbb3c/image.png)
![image](/uploads/e9b97157968bff16a69f2f2096400a5e/image.png)
The recomputation algorithm was correct. The issue was in the ``updateSolution`` function where
the backup of the previous solution did not take parameters into account.
https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/249Toolkit2: Proper handling of parameters to plotters2019-04-15T12:36:17+02:00Ghost UserToolkit2: Proper handling of parameters to plottersJM reports:
```
vers/0/plotters/0/parameters
0.0855118 19:11:35 [mpp2r02c02s08]rank:0 info exahype::plotters::Plotter::Plotter(...) write snapshot to file ./reference_solution every 0.005 time units with f...JM reports:
```
vers/0/plotters/0/parameters
0.0855118 19:11:35 [mpp2r02c02s08]rank:0 info exahype::plotters::Plotter::Plotter(...) write snapshot to file ./reference_solution every 0.005 time units with first snapshot at 0. plotter type is probe::ascii. Plotter configuration=(solver no=0,plotter identifier (type)=probe::ascii,written unknowns=9,time=0,repeat=0.005,file name=./reference_solution,plotter parameters={"select":{"x":0.5,"y":0.5,"z":0.8}},device configured=0)
0.085593 19:11:35 [mpp2r02c02s08]rank:0 error exahype::plotters::ADERDG2ProbeAscii::init() Probe location is invalid. Require x,y,z values. Have {"select":{"x":0.5,"y":0.5,"z":0.8}} (file:/home/hpc/pr63so/di57wuf/ExaHyPE-Engine/toolkit2-linear_flux_ncp_mm.exahype-build/./ExaHyPE/exahype/plotters/ADERDG2ProbeAscii.cpp,line:56)
0.085651 19:11:35 [mpp2r02c02s08]rank:0 error exahype::parser::Parser::getIntFromPath() Missing entry /solvers/0/plotters/0/parameters/x ([json.exception.out_of_range.403] key 'x' not found) (file:/home/hpc/pr63so/di57wuf/ExaHyPE-Engine/toolkit2-linear_flux_ncp_mm.exahype-build/./ExaHyPE/exahype/parser/Parser.cpp,line:346)
0.0856928 19:11:35 [mpp2r02c02s08]rank:0 error exahype::parser::Parser::getIntFromPath() Missing entry /solvers/0/plotters/0/parameters/y ([json.exception.out_of_range.403] key 'y' not found) (file:/home/hpc/pr63so/di57wuf/ExaHyPE-Engine/toolkit2-linear_flux_ncp_mm.exahype-build/./ExaHyPE/exahype/parser/Parser.cpp,line:346)
0.0857256 19:11:35 [mpp2r02c02s08]rank:0 error exahype::parser::Parser::getIntFromPath() Missing entry /solvers/0/plotters/0/parameters/z ([json.exception.out_of_range.403] key 'z' not found) (file:/home/hpc/pr63so/di57wuf/ExaHyPE-Engine/toolkit2-linear_flux_ncp_mm.exahype-build/./ExaHyPE/exahype/parser/Parser.cpp,line:346)
0.0879261 error was not able to open input file exahype.log-filter (file:/home/hpc/pr63so/di57wuf/ExaHyPE-Engine/toolkit2-linear_flux_ncp_mm.exahype-build/./Peano/tarch/logging/LogFilterFileReader.cpp,line:88)
0.0879611 warning filter file exahype.log-filter was invalid. Switch on all log statements (file:/home/hpc/pr63so/di57wuf/ExaHyPE-Engine/toolkit2-linear_flux_ncp_mm.exahype-build/./Peano/tarch/logging/LogFilterFileReader.cpp,line:105)
0.0879824 error do not run code as parser reported errors (file:/home/hpc/pr63so/di57wuf/ExaHyPE-Engine/toolkit2-linear_flux_ncp_mm.exahype-build/./ExaHyPE/exahype/runners/Runner.cpp,line:691)
0.0879934 info quit with error code 1
status=COMPLETED
```
This does not seem to be a fault by the C++ Parser but maybe instead by the `classic-exahype -> JSON` converter in the toolkit.https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/248Dynamic AMR Infinite Loop Scenario2019-09-20T15:46:24+02:00Ghost UserDynamic AMR Infinite Loop ScenarioFound a situation where Ancestors are not able to erase their children and the mesh refinement ends up
in an infinite loop.
A few affected cells
--------------------
```
47.8326 info (solverNumber:0,neighbourMergePerform...Found a situation where Ancestors are not able to erase their children and the mesh refinement ends up
in an infinite loop.
A few affected cells
--------------------
```
47.8326 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:41,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.259259,0.481481],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[4,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[0,0,0,0],communicationStatus:0,facewiseRefinementStatus:[-2,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8328 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:41,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.222222,0.481481],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[3,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[0,0,0,0],communicationStatus:0,facewiseRefinementStatus:[-2,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.833 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:41,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.222222,0.518519],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[3,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[0,0,0,0],communicationStatus:0,facewiseRefinementStatus:[-2,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8332 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:41,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.259259,0.518519],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[4,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[0,0,0,0],communicationStatus:0,facewiseRefinementStatus:[-2,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.857 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:36,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.222222,0.407407],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[3,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[0,0,1,0],communicationStatus:0,facewiseRefinementStatus:[-2,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8572 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:36,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.259259,0.407407],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[4,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[0,0,0,0],communicationStatus:0,facewiseRefinementStatus:[-2,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8575 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:36,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.259259,0.37037],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[4,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[1,0,1,0],communicationStatus:0,facewiseRefinementStatus:[-2,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8577 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:36,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.222222,0.37037],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[3,4,3,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[0,0,2,0],communicationStatus:1,facewiseRefinementStatus:[-2,-2,-1,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.858 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:36,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.259259,0.333333],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[3,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[2,0,1,0],communicationStatus:1,facewiseRefinementStatus:[-1,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8736 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:9,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.37037,0.222222],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[3,4,3,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[2,0,0,0],communicationStatus:1,facewiseRefinementStatus:[-1,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8739 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:9,parentCellLevel:-1,parentOffset:[-1,-1],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.333333,0.259259],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[4,4,3,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[1,0,2,0],communicationStatus:1,facewiseRefinementStatus:[-2,-2,-1,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8747 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:62,parentCellLevel:3,parentOffset:[0.222222,0.222222],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.296296,0.296296],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[4,4,4,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[1,0,1,0],communicationStatus:0,facewiseRefinementStatus:[-2,-2,-2,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8748 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:62,parentCellLevel:3,parentOffset:[0.222222,0.222222],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.259259,0.296296],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[3,4,3,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[2,0,2,1],communicationStatus:1,facewiseRefinementStatus:[-1,-2,-1,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
47.8752 info (solverNumber:0,neighbourMergePerformed:[0,0,0,0],hasCompletedTimeStep:1,parentIndex:62,parentCellLevel:3,parentOffset:[0.222222,0.222222],hasVirtualChildren:0,type:Ancestor,refinementEvent:ErasingChildrenRequested,level:4,offset:[0.296296,0.259259],size:[0.037037,0.037037],previousCorrectorTimeStamp:1.79769e+308,previousCorrectorTimeStepSize:0,correctorTimeStepSize:0,correctorTimeStamp:0.140328,predictorTimeStepSize:0,predictorTimeStamp:0.140328,solution:-1,solutionAverages:-1,solutionCompressed:-1,previousSolution:-1,previousSolutionAverages:-1,previousSolutionCompressed:-1,update:-1,updateAverages:-1,updateCompressed:-1,extrapolatedPredictor:-1,extrapolatedPredictorAverages:-1,extrapolatedPredictorCompressed:-1,fluctuation:-1,fluctuationAverages:-1,fluctuationCompressed:-1,solutionMin:-1,solutionMax:-1,facewiseAugmentationStatus:[3,4,3,4],augmentationStatus:4,previousAugmentationStatus:4,facewiseCommunicationStatus:[2,1,2,0],communicationStatus:1,facewiseRefinementStatus:[-1,-2,-1,-2],refinementFlag:0,refinementStatus:-2,previousRefinementStatus:-1,iterationsToCureTroubledCell:0,compressionState:Uncompressed,bytesPerDoFInPreviousSolution:-1,bytesPerDoFInSolution:-1,bytesPerDoFInUpdate:-1,bytesPerDoFInExtrapolatedPredictor:-1,bytesPerDoFInFluctuation:-1)
```
Spec file for reproducing the error
-----------------------------------
```
exahype-project Euler
peano-kernel-path const = ./Peano
exahype-path const = ./ExaHyPE
output-directory const = ./ApplicationExamples/Euler/Euler_ADERDG
architecture const = noarch
computational-domain
dimension const = 2
width = 1.0, 1.0, 1.0
offset = 0.0, 0.0, 0.0
end-time = 1.001
end computational-domain
shared-memory
identifier = dummy
configure = {background-tasks:4}
cores = 8
properties-file = sharedmemory.properties
end shared-memory
distributed-memory
identifier = static_load_balancing
configure = {hotspot,fair,ranks_per_node:4}
buffer-size = 64
timeout = 240
end distributed-memory
global-optimisation
fuse-algorithmic-steps = on
fuse-algorithmic-steps-factor = 0.99
spawn-predictor-as-background-thread = on
spawn-amr-background-threads = off
/* 0.0 und 0.8 sind schon mal zwei Faktoren */
disable-vertex-exchange-in-time-steps = on
time-step-batch-factor = 1.0
disable-metadata-exchange-in-batched-time-steps = on
double-compression = 0.0
spawn-double-compression-as-background-thread = off
end global-optimisation
solver ADER-DG EulerSolver_ADERDG
variables const = rho:1,j:3,E:1
order const = 3
/* 27 points: 0.05, 9 points: 0.15 */
maximum-mesh-size = 0.4
maximum-mesh-depth = 3
halo-cells = 1
time-stepping = globalfixed
type const = nonlinear
terms const = flux
optimisation const = generic,usestack
language const = C
constants = reference:entropywave
plot vtu::Cartesian::vertices::ascii ErrorPlotter
// abserrorl1percell[nvar],q[nvar],qanalytical[nvar]
variables const = 15
time = 0.0
repeat = 1e-2
output = ./errors
end plot
end solver
end exahype-project
```https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/247Toolkit2: Make subprocess invocation of ExaHyPE main code optional2018-09-06T15:37:41+02:00Ghost UserToolkit2: Make subprocess invocation of ExaHyPE main code optionalSome people might not like the idea that the ExaHyPE code calls the Toolkit in order to (pre)parse specification files.
We should offer a specfile option within the specfiles to allow to generate code which does not calls a subprocess b...Some people might not like the idea that the ExaHyPE code calls the Toolkit in order to (pre)parse specification files.
We should offer a specfile option within the specfiles to allow to generate code which does not calls a subprocess but instead expects the input to be JSON.
This could be seen as advance hotfix when people report problems in complex MPI environments.https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/246Toolkit2: If it is configure, it should test the make system2018-09-01T15:54:55+02:00Ghost UserToolkit2: If it is configure, it should test the make systemCodes using the popular [Autotools/Autoconf ecosystem](https://www.gnu.org/software/autoconf/manual/autoconf.html) expect users to compile code by something like
```
wget http://example.com/code.tar.gz && unpack || git clone ...
./confi...Codes using the popular [Autotools/Autoconf ecosystem](https://www.gnu.org/software/autoconf/manual/autoconf.html) expect users to compile code by something like
```
wget http://example.com/code.tar.gz && unpack || git clone ...
./configure --with-MPI --with-TBB --without-lapack
make
```
Configure does several things, but typically it
* Checks whether the neccessary *compilers and libraries* are installed by doing test compilations and executions
* Generates a Makefile
We probably all dislike configure for doing these lengthy tests which always consume time.
In similarity to *configure*, some ExaHyPE users (notably Dominic) interpret the ExaHyPE toolkit as a *configure step*:
```
wget http://exahype.eu/obtain/exahype.tar.gz ...
./toolkit.sh PathToSpecfile.exahype
make
```
We know this analogy at least does not hold because some build decisions are made at making time, for instance the choice for MPI, TBB and Assertions. Our toolkit never executes any compiler, it only generates code. There is a clean distinction.
However, frequently compilation fails and users must find out why. What a real *configure* step would provide is a check for compiler capabilities. With tough problems, users have to debug these capabilities anyway, for instance by [compiling and running my compiler challanges](https://bitbucket.org/svek/compiler-challenges).
I suggest we add an option `--test` to the Toolkit which brings in some *configure* flavour. When enabled, after the invocation of the regular Toolkit it could compile and run some tests and test for
* A valid C++11 and Fortran (long lines + REAL=8 bytes) compiler (test programs)
* Presence of a modern and working TBB (test program)
* Presence of a working MPI (test program)
Of course, running these tests probably requires to have some flags such as `EXAHYPE_CC` already set.
As an alternative, I suggest we have another Makefile target for our make system: `make test`, which does not compile the code but instead compiles (and runs) these tests.https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/245Toolkit2: Allow users to share binaries, move them accross computers, etc.2019-03-21T10:47:08+01:00Ghost UserToolkit2: Allow users to share binaries, move them accross computers, etc.The new ExaHyPE Parser C++ infrastructure currently does a `suprocess` to call the Toolkit in order to convert old-fashioned specification files. To do so, the call to `Toolkit/toolkit.sh` is hardcoded, including the path.
This raises p...The new ExaHyPE Parser C++ infrastructure currently does a `suprocess` to call the Toolkit in order to convert old-fashioned specification files. To do so, the call to `Toolkit/toolkit.sh` is hardcoded, including the path.
This raises problems in certain use cases:
* The user shares his Executable to another user on the system/cluster but does not make the access permissions correctly for the Toolkit
* The user copies only the Executable to another machine but not the overall Code (especially not the Toolkit code)
* The user renames the path to his installation (probably when cleaning up his home directory) but wants to keep an ExaHyPE build working (obviously this is not possible)
We have no solution for all these use cases, but we should include checks in the C++ code to deal with them:
* Check whether `Path/to/Toolkit/toolkit.sh` exists, is readable and executablehttps://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/244Toolkit2: Should have --pretend and --clean option2019-04-15T12:40:31+02:00Ghost UserToolkit2: Should have --pretend and --clean optionEvery invocation of the toolkit currently overwrites certain files. However, as a user, I miss two options:
* Clean the generated files, especially the glue files. For a *novice user*, it is not obvious what to clean when wanting certai...Every invocation of the toolkit currently overwrites certain files. However, as a user, I miss two options:
* Clean the generated files, especially the glue files. For a *novice user*, it is not obvious what to clean when wanting certain files to be regenerated. A `--clean` file should exeute `rm Abstract* KernelCalls*`
* Explain what the toolkit would do. Some tools such as [rename(1)](http://man7.org/linux/man-pages/man1/rename.1.html) or [rsync(1)](https://linux.die.net/man/1/rsync) have an option called `--pretend`, `--dry-run` or `--no-act` which *explain* what the tool would do. We should offer such an option to make it more transparent what especially a second run of the toolkit does.https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/243Toolkit2: Create .gitignore2018-09-05T14:23:33+02:00Ghost UserToolkit2: Create .gitignoreWe could think about such an option to let the toolkit create a `.gitignore` in the output directory. That could hold something like
```
Abstract*
KernelCalls*
README_generated.md
```
However, these files are not solver-name-dependent ...We could think about such an option to let the toolkit create a `.gitignore` in the output directory. That could hold something like
```
Abstract*
KernelCalls*
README_generated.md
```
However, these files are not solver-name-dependent and easy to track in the global `.gitignore`, too.
Would a local `.gitignore` have any features beyond?https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/242Toolkit2: Fix old merge2019-03-21T10:46:28+01:00Ghost UserToolkit2: Fix old mergehttps://gitlab.lrz.de/exahype/ExaHyPE-Engine/commit/d92031f56b4bf6b6ba92f1d774cc9271ec6d13c5#note_215226
@Sven: Check whether this is done or not.
Two changes I did and you unfortunately undid with your merge (should be easy to fix...https://gitlab.lrz.de/exahype/ExaHyPE-Engine/commit/d92031f56b4bf6b6ba92f1d774cc9271ec6d13c5#note_215226
@Sven: Check whether this is done or not.
Two changes I did and you unfortunately undid with your merge (should be easy to fix though):
* Make sure you are using `ValueError` instead of `JSONDecodeError(ValueError)`.
Otherwise, the code requires python3 version>=3.5.0.
This is a typical error message you get:
```
controller.py:215(getSpec):ERROR Could not read specification file '../Euler_ADERDG.exahype': 'module' object has no attribute 'JSONDecodeError'
```
* Make sure `mexa.py` is python3.
I regex-replaced
`print (".+"\s*(%\s*\(.+\))?)$` with `print(\1)`https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/241Improve Plotter infrastructure2018-09-04T20:38:44+02:00Ghost UserImprove Plotter infrastructureThis is a long term goal:
The plotters were growing features in a weird way with tons of code duplication and the fact that now some plotters have features which others don't and there is no obvious reason why (for instance: VTK Legendr...This is a long term goal:
The plotters were growing features in a weird way with tons of code duplication and the fact that now some plotters have features which others don't and there is no obvious reason why (for instance: VTK Legendre basis plotter cannot do patchwise mapping of quantities while VTK Cartesian basis plotter can).
The obvious answer to this problem is *abstraction*. I already started once when introducing a `Slicer` interface class to allow various kind of slicing operations without having to specify them in the individual plotters. They just pass the parameters given by the specfile.
In a similar way, we need more abstraction for the quantities mapping, for labeling of the written quantities (named instead of `Q0...QN`), interpolation on different subcell grids, Support of the *isTroubled* flag or in general bitmasks of patch statusses, etc. The following picture is a sketchy overview:
![plotters](/uploads/876457ebab375ee2e1a15bd32a43c1f3/plotters.png)
To be honest I made this ticket here only becaue I wanted to throw away that sketch paper. It is at least one year old.
Figure as PDF: [Sbizhub1318082520330.pdf](/uploads/d4279ca1621927df8155582c66726dd0/Sbizhub1318082520330.pdf)https://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/240Access to all patches of a peano cell from within user interface/code2018-08-24T11:55:39+02:00Ghost UserAccess to all patches of a peano cell from within user interface/codeHi,
I'm trying to access all patches within a peano cell from within the user code. I'm using the EulerFV example. Is it possible to document this?
I understand that one has to override the function adjustSolution in the Abstract class...Hi,
I'm trying to access all patches within a peano cell from within the user code. I'm using the EulerFV example. Is it possible to document this?
I understand that one has to override the function adjustSolution in the Abstract class (AbstractMyEulerSolver.cpp) as there kernels::finitevolumes::commons::c::solutionAdjustment() is called.
To my understanding kernels::finitevolumes::commons::c::solutionAdjustment() loops through all the patches within a peano cell.
I override the abstract function but there is a compiler error in commons.cpph that says "too few arguements in function call" - line 493. I suspect that the error is caused by the overriding.
Any help/documentation would be helpful.
thankshttps://gitlab.lrz.de/exahype/ExaHyPE-Engine/-/issues/239Toolkit2: Be consistent with interactivity2018-09-10T19:38:15+02:00Ghost UserToolkit2: Be consistent with interactivityThe toolkit.sh is blocking for user input if dependency problems occur. Will be fatal when called from Engine. Simple solution: Take --interactive etc flags into account.
Can fix that.The toolkit.sh is blocking for user input if dependency problems occur. Will be fatal when called from Engine. Simple solution: Take --interactive etc flags into account.
Can fix that.