I am trying to set up a binary black hole simulation that uses 8th order accurate finite differencing. (I need the black holes to be highly resolved, and I don't need the wave zone, thus I am not use AMR.) On the other hand, I am using Cartoon2D, and I extended it to support 8th order interpolation.
My problem is that I cannot get the simulation started well. After a few (about 70) time steps, the code aborts due to nans. Of course, having modified thorn Cartoon2D, I cannot exclude that I made an error there. On the other hand, I did find some pre-existing errors that I corrected.
I wonder: What are good settings for numerical dissipation in this case (ML_BSSN with fdOrder=8)? I see a sample parameter file that uses epsDiss = 0.1; should I expect this to work? Would puncture initial conditions need any kind of special treatment? (I'm using TwoPunctures.)
Thanks, -erik
I don't know how to answer your question, but I hope to see the extensions to Cartoon2D etc. to come back to the toolkit.
I'm also wondering if you want to try using PreSync, even if boundary conditions and syncs aren't your major problem.
--Steve
On 4/8/2019 12:03 PM, Erik Schnetter wrote:
I am trying to set up a binary black hole simulation that uses 8th order accurate finite differencing. (I need the black holes to be highly resolved, and I don't need the wave zone, thus I am not use AMR.) On the other hand, I am using Cartoon2D, and I extended it to support 8th order interpolation.
My problem is that I cannot get the simulation started well. After a few (about 70) time steps, the code aborts due to nans. Of course, having modified thorn Cartoon2D, I cannot exclude that I made an error there. On the other hand, I did find some pre-existing errors that I corrected.
I wonder: What are good settings for numerical dissipation in this case (ML_BSSN with fdOrder=8)? I see a sample parameter file that uses epsDiss = 0.1; should I expect this to work? Would puncture initial conditions need any kind of special treatment? (I'm using TwoPunctures.)
Thanks, -erik
On Mon, Apr 8, 2019 at 3:41 PM Steven R. Brandt sbrandt@cct.lsu.edu wrote:
I don't know how to answer your question, but I hope to see the extensions to Cartoon2D etc. to come back to the toolkit.
They certainly will.
I'm also wondering if you want to try using PreSync, even if boundary conditions and syncs aren't your major problem.
You may or may not be aware that Cartoon2D syncs both before and after applying boundary conditions for each group, and that it does not work well with OpenMP. So I am using many MPI processes and have many syncs in my code.
-erik
--Steve
On 4/8/2019 12:03 PM, Erik Schnetter wrote:
I am trying to set up a binary black hole simulation that uses 8th order accurate finite differencing. (I need the black holes to be highly resolved, and I don't need the wave zone, thus I am not use AMR.) On the other hand, I am using Cartoon2D, and I extended it to support 8th order interpolation.
My problem is that I cannot get the simulation started well. After a few (about 70) time steps, the code aborts due to nans. Of course, having modified thorn Cartoon2D, I cannot exclude that I made an error there. On the other hand, I did find some pre-existing errors that I corrected.
I wonder: What are good settings for numerical dissipation in this case (ML_BSSN with fdOrder=8)? I see a sample parameter file that uses epsDiss = 0.1; should I expect this to work? Would puncture initial conditions need any kind of special treatment? (I'm using TwoPunctures.)
Thanks, -erik
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Hi Erik,
I do believe that epsDiss=0.1 should be fine for 8th order dissipation. The dissipation operators should be multiplied by suitable factors so that the range of good dissipation strength values should be the same regardless of dissipation order.
Regarding you second question about whether puncture initial data would need any kind of special treatment, my answer is: I don't think so.
What kind of resolutions are you trying to use?
Would it be possible to run without Cartoon2D for a short time at the same resolution and check if those issues disappear?
Cheers,
Peter
On Monday 2019-04-08 15:01, Erik Schnetter wrote:
Date: Mon, 8 Apr 2019 15:01:46 From: Erik Schnetter schnetter@cct.lsu.edu To: Steven R. Brandt sbrandt@cct.lsu.edu Cc: Einstein Toolkit Users users@einsteintoolkit.org Subject: Re: [Users] BSSN, 8th order accurate -- how much dissipation?
On Mon, Apr 8, 2019 at 3:41 PM Steven R. Brandt sbrandt@cct.lsu.edu wrote:
I don't know how to answer your question, but I hope to see the extensions to Cartoon2D etc. to come back to the toolkit.
They certainly will.
I'm also wondering if you want to try using PreSync, even if boundary conditions and syncs aren't your major problem.
You may or may not be aware that Cartoon2D syncs both before and after applying boundary conditions for each group, and that it does not work well with OpenMP. So I am using many MPI processes and have many syncs in my code.
-erik
--Steve
On 4/8/2019 12:03 PM, Erik Schnetter wrote:
I am trying to set up a binary black hole simulation that uses 8th order accurate finite differencing. (I need the black holes to be highly resolved, and I don't need the wave zone, thus I am not use AMR.) On the other hand, I am using Cartoon2D, and I extended it to support 8th order interpolation.
My problem is that I cannot get the simulation started well. After a few (about 70) time steps, the code aborts due to nans. Of course, having modified thorn Cartoon2D, I cannot exclude that I made an error there. On the other hand, I did find some pre-existing errors that I corrected.
I wonder: What are good settings for numerical dissipation in this case (ML_BSSN with fdOrder=8)? I see a sample parameter file that uses epsDiss = 0.1; should I expect this to work? Would puncture initial conditions need any kind of special treatment? (I'm using TwoPunctures.)
Thanks, -erik
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
-- Erik Schnetter schnetter@cct.lsu.edu http://www.perimeterinstitute.ca/personal/eschnetter/ _______________________________________________ Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
On Mon, Apr 8, 2019 at 4:46 PM Peter Diener diener@cct.lsu.edu wrote:
Hi Erik,
I do believe that epsDiss=0.1 should be fine for 8th order dissipation. The dissipation operators should be multiplied by suitable factors so that the range of good dissipation strength values should be the same regardless of dissipation order.
Regarding you second question about whether puncture initial data would need any kind of special treatment, my answer is: I don't think so.
What kind of resolutions are you trying to use?
M/128 isn't quite good enough, so I'm starting from M/256 up to M/768, maybe higher if necessary.
Would it be possible to run without Cartoon2D for a short time at the same resolution and check if those issues disappear?
I totally should have done that. The problems appear quickly enough. Thanks for the reminder.
-erik
Cheers,
Peter
On Monday 2019-04-08 15:01, Erik Schnetter wrote:
Date: Mon, 8 Apr 2019 15:01:46 From: Erik Schnetter schnetter@cct.lsu.edu To: Steven R. Brandt sbrandt@cct.lsu.edu Cc: Einstein Toolkit Users users@einsteintoolkit.org Subject: Re: [Users] BSSN, 8th order accurate -- how much dissipation?
On Mon, Apr 8, 2019 at 3:41 PM Steven R. Brandt sbrandt@cct.lsu.edu wrote:
I don't know how to answer your question, but I hope to see the extensions to Cartoon2D etc. to come back to the toolkit.
They certainly will.
I'm also wondering if you want to try using PreSync, even if boundary conditions and syncs aren't your major problem.
You may or may not be aware that Cartoon2D syncs both before and after applying boundary conditions for each group, and that it does not work well with OpenMP. So I am using many MPI processes and have many syncs in my code.
-erik
--Steve
On 4/8/2019 12:03 PM, Erik Schnetter wrote:
I am trying to set up a binary black hole simulation that uses 8th order accurate finite differencing. (I need the black holes to be highly resolved, and I don't need the wave zone, thus I am not use AMR.) On the other hand, I am using Cartoon2D, and I extended it to support 8th order interpolation.
My problem is that I cannot get the simulation started well. After a few (about 70) time steps, the code aborts due to nans. Of course, having modified thorn Cartoon2D, I cannot exclude that I made an error there. On the other hand, I did find some pre-existing errors that I corrected.
I wonder: What are good settings for numerical dissipation in this case (ML_BSSN with fdOrder=8)? I see a sample parameter file that uses epsDiss = 0.1; should I expect this to work? Would puncture initial conditions need any kind of special treatment? (I'm using TwoPunctures.)
Thanks, -erik
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
-- Erik Schnetter schnetter@cct.lsu.edu http://www.perimeterinstitute.ca/personal/eschnetter/ _______________________________________________ Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
On 8 Apr 2019, at 18:03, Erik Schnetter <eschnetter@perimeterinstitute.camailto:eschnetter@perimeterinstitute.ca> wrote:
I am trying to set up a binary black hole simulation that uses 8th order accurate finite differencing. (I need the black holes to be highly resolved, and I don't need the wave zone, thus I am not use AMR.) On the other hand, I am using Cartoon2D, and I extended it to support 8th order interpolation.
My problem is that I cannot get the simulation started well. After a few (about 70) time steps, the code aborts due to nans. Of course, having modified thorn Cartoon2D, I cannot exclude that I made an error there. On the other hand, I did find some pre-existing errors that I corrected.
I wonder: What are good settings for numerical dissipation in this case (ML_BSSN with fdOrder=8)? I see a sample parameter file that uses epsDiss = 0.1; should I expect this to work? Would puncture initial conditions need any kind of special treatment? (I'm using TwoPunctures.)
Hi Erik,
I did experiments with this a while ago with a production BBH simulation (multipatch), and the limit seemed to be about 0.08 in my tests, and I use 0.05 for safety. I don't have access to the data right now (though can dig it out if you want), but I think it was for a Courant factor of 0.45, though it might have been 0.5. It is strongly dependent on the Courant factor. You can probably get away with larger dissipation strengths for a short time or for low resolution, or if you don't have very sharp features (e.g. junk radiation from high spin or high q configurations), but you probably don't want to rely on this.
For reference, the parameters I use are below.
With Cartoon, I think you will have an effective very small grid spacing for small r, which means that to maintain the Courant condition, you would need a smaller timestep. Is that right? I've never used Cartoon, but it seems like this is something that should be taken into account.
Puncture initial conditions shouldn't need any special treatment. Without Cartoon, a resolution of something like 20 grid cells across the radius of the settled AH (which could be a factor of 2 larger than the initial radius) is probably a good minimum to use.
################################################################################ # Spatial finite differencing ################################################################################
SummationByParts::order = 8
# Drop order instead of using upwinded stencils, only for advection derivatives SummationByParts::sbp_upwind_deriv = no
SummationByParts::sbp_1st_deriv = yes SummationByParts::sbp_2nd_deriv = no SummationByParts::onesided_interpatch_boundaries = no SummationByParts::onesided_outer_boundaries = yes SummationByParts::use_dissipation = no GlobalDerivative::use_dissipation = yes SummationByParts::scale_with_h = yes SummationByParts::dissipation_type = "Kreiss-Oliger"
# Stability limit seems to be about 0.08 SummationByParts::epsdis = 0.05
# Variables for dissipation SummationByParts::vars = " ML_BSSN::ML_log_confac ML_BSSN::ML_metric ML_BSSN::ML_trace_curv ML_BSSN::ML_curv ML_BSSN::ML_Gamma ML_BSSN::ML_lapse ML_BSSN::ML_shift ML_BSSN::ML_dtlapse ML_BSSN::ML_dtshift "
-- Ian Hinder Research Software Engineer University of Manchester, UK
users@lists.einsteintoolkit.org