-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello all,
the PARAMCHECK routines normally abort if inconsistent parameters are given. I have a situation where the parameter choice is valid and the result of the simulation should be identical with or without the parameter set (assuming not bugs...), however setting the parameter is likely going to make the simulation slower.
Im this particular case the parameter is CarpetLib::use_higher_order_restriction when used for a run with Carpet::refinement_centering = "vertex". In that case restriction is just a copy operation and independent of use_higher_order_restriction, for cell-centered runs this is not true anymore and this is the situation that use_higher_order_restriction was implemented for.
However there is code in Carpet/Evolve.cc that calls POSTREGRID multiple times if use_higher_order_restriction is set (it has to in order to get symmetry, outer boundaries and also ghost zones right).
For vertex centering nothing should happen (since there is a second call to POSTRESTRICT after all restriction is done).
Options are:
* do nothing since these parameters are perfectly valid if slow * warn with level CCTK_WARN_COMPLAIN ("the user should know about this but the problem is not terribly surprising") * warn with level CCTK_WARN_ALERT ("the results of this run will be wrong, and this will surprise the user, but we can still continue the run") * abort since the user most likely did not want to set the parameter
Note that current practise in most code seems to be to use CCTK_WARN_COMPLAIN (Level 1) for warnings about situations that do not invalidate the result and CCTK_WARN_ABORT (Level 0) for anything that invalidates results, ie. we do not adhere to the meaning of the levels documented in src/include/cctk_WarnLevel.h .
Yours, Roland
- -- My email is as private as my paper mail. I therefore support encrypting and signing email messages. Get my PGP key from http://keys.gnupg.net.
People often ignore warnings.
Since there is no point in using "higher order restriction" with vertex centring, one can assume this is an oversight. I would abort the simulation to keep things simple.
Alternatively, one could ignore this parameter for vertex centring.
-erik
On May 7, 2014, at 18:08 , Roland Haas rhaas@tapir.caltech.edu wrote:
Signed PGP part Hello all,
the PARAMCHECK routines normally abort if inconsistent parameters are given. I have a situation where the parameter choice is valid and the result of the simulation should be identical with or without the parameter set (assuming not bugs...), however setting the parameter is likely going to make the simulation slower.
Im this particular case the parameter is CarpetLib::use_higher_order_restriction when used for a run with Carpet::refinement_centering = "vertex". In that case restriction is just a copy operation and independent of use_higher_order_restriction, for cell-centered runs this is not true anymore and this is the situation that use_higher_order_restriction was implemented for.
However there is code in Carpet/Evolve.cc that calls POSTREGRID multiple times if use_higher_order_restriction is set (it has to in order to get symmetry, outer boundaries and also ghost zones right).
For vertex centering nothing should happen (since there is a second call to POSTRESTRICT after all restriction is done).
Options are:
- do nothing since these parameters are perfectly valid if slow
- warn with level CCTK_WARN_COMPLAIN ("the user should know about this
but the problem is not terribly surprising")
- warn with level CCTK_WARN_ALERT ("the results of this run will be
wrong, and this will surprise the user, but we can still continue the run")
- abort since the user most likely did not want to set the parameter
Note that current practise in most code seems to be to use CCTK_WARN_COMPLAIN (Level 1) for warnings about situations that do not invalidate the result and CCTK_WARN_ABORT (Level 0) for anything that invalidates results, ie. we do not adhere to the meaning of the levels documented in src/include/cctk_WarnLevel.h .
Yours, Roland
-- My email is as private as my paper mail. I therefore support encrypting and signing email messages. Get my PGP key from http://keys.gnupg.net.
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello all,
On 2014-05-08 00:21, Frank Loeffler wrote:
On Wed, May 07, 2014 at 06:18:56PM -0400, Erik Schnetter wrote:
Alternatively, one could ignore this parameter for vertex centring.
Didn't think of this - probably the best solution (just mention it in the parameter description).
This came up again (same reason as before). I have now implemented the "ignore this parameter for vertex centring" option.
The parameter handling is unusual for Carpet. Eventually I will want to move the parameter into Carpet and have it tell CarpetLib about it in the same way the CarpetLib learns about the refinement centering. This will deprecate the parameter in CarpetLib and I may completely remove the user_higher_order_restriction parameter in favor of using only (instead of in addition to) the restriction_order_space parameter.
Yours, Roland
- -- My email is as private as my paper mail. I therefore support encrypting and signing email messages. Get my PGP key from http://keys.gnupg.net.
On Wed, May 07, 2014 at 03:08:53PM -0700, Roland Haas wrote:
Note that current practise in most code seems to be to use CCTK_WARN_COMPLAIN (Level 1) for warnings about situations that do not invalidate the result and CCTK_WARN_ABORT (Level 0) for anything that invalidates results, ie. we do not adhere to the meaning of the levels documented in src/include/cctk_WarnLevel.h .
I think the best would probably also here be CCTK_WARN_COMPLAIN. Aborting an otherwise valid run doesn't seem right to me. There might be a reason someone wants to run this (wouldn't know why, but who knows), and you might just "kill" a week of wait time in the queue stopping in paramcheck.
Frank
users@lists.einsteintoolkit.org