| Commit message (Collapse) | Author | Age |
| |
|
| |
|
|
|
|
| |
Correct logic error that would override do_recompose by looking at movement thresholds.
|
| |
|
|
|
|
| |
levels as empty
|
|
|
|
| |
Compare new to old refined regions for each refinement level. Don't perform domain decomposition if a level didn't change. If no level changed, tell Carpet.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
origin, if desired
Introduce a new parameter that tests whether the refinement hierarchy is symmetric about the origin.
|
| |
|
|
|
|
|
|
| |
Add new parameters symmetry_periodic_x, symmetry_periodic_y, and
symmetry_periodic_z that ensure that the generated grid structure has
the corresponding symmetry.
|
|
|
|
|
|
|
|
|
|
|
| |
Re-organise some of the internal details of refluxing. Refluxing
requires restricting fluxes from fine to coarse grids. Previously,
Carpet would internally store bounding boxes that were offset by 1/2
grid point, and adjust (correct) these boxes in various places in a
rather ad-hoc manner. This is now cleaned up.
Remove the (unused) "accumulate" operator, and the (unused)
"accumulate" prolongation type.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enforce certain grid structure properites, and ensure that they hold
after being enforced.
This change may lead to Carpet using a (slightly) different grid
structure than before. The differences are not "important"; what
potentially changes is the order in which consistency conditions are
applied. I expect that, in most cases, there will be no differences.
The list of consistency conditions is:
- ensure proper nesting (level must be larger than next finer level)
- add buffer zones (only once, not really a consistency condition)
- combine regions into a single box (if this is efficient)
- apply rotating 90/180 symmetry (if requested)
- clip at outer boundary (so that boxes that are too large or are
outside are cut off)
This change also reorganises the code in CarpetRegrid2.
|
| |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| | |
criterion.
|
| |
| |
| |
| | |
shadows a member of 'this'
|
| | |
|
|/
|
|
| |
Correct indexing error.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Correct errors for cell centered grids
Correct snap_to_coarse
Introduce veryverbose parameter
|
| |
|
|
|
|
| |
Always number refined regions starting from 1.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Store the current Cactus time (and not a fake Carpet time) in the th
"time hiearchy". This removes the now redundant "leveltimes" data
structure in Carpet.
Add past time levels to th, so that it can store the time for past
time levels instead of assuming the time step size is constant. This
allows changing the time step size during evolution.
Share the time hierarchy between all maps, instead of having one time
hierarchy per map.
Simplify the time level cycling and time stepping code used during
evolution.
Improve structure of the code that loops over time levels for certain
schedule bins. Introduce a new Carpet variable "timelevel", similar
to "reflevel".
This also makes it possible to avoid time interpolation for the past
time levels during regridding. The past time levels of the fine grid
then remain aligned (in time) with the past time levels of the coarse
grid. This is controlled by a new parameter
"time_interpolation_during_regridding", which defaults to "yes" for
backwards compatibility.
Simplify the three time level initialisation. Instead of initialising
all three time levels by taking altogether three time steps (forwards
and backwards), initialise only one past time level by taking one time
step backwards. The remaining time level is initialised during the
first time step of the evolution, which begins by cycling time levels,
which drops the non-initialised last time level anyway.
Update Carpet and the mode handling correspondingly.
Update the CarpetIOHDF5 checkpoint format correspondingly.
Update CarpetInterp, CarpetReduce, and CarpetRegrid2 correspondingly.
Update CarpetJacobi and CarpetMG correspondingly.
|
|
|
|
| |
Do not abort when the refinement region radius has its default value -1.
|
|
|
|
|
| |
Use an illegal default value for the refinement region radii. This
catches parameter file errors where the radii are not set.
|
|
|
|
|
| |
Allow different numbers of ghost zones and different spatial
prolongation orders on different refinement levels.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
|
|
|
|
|
| |
Take the boundaries correctly into account when checking for proper
nesting.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Add parameters to regrid only those refinement levels that exist at a
particular time, and leave all coarser refinement levels unchanged.
At the moment, this may lead to improperly nested grids if grids move
too far.
|
| |
|
|
|
|
|
|
|
|
|
| |
Introduce a tree data structure "fulltree", which decomposes a single,
rectangular region into a tree of non-overlapping, rectangular sub-regions.
Move the processor decomposition from the regridding thorns into Carpet.
Create such trees during processor decomposition.
Store these trees with the grid hierarchy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Carpet:
Ensure that at most one of GetDomainSpecificatio or
MultiPatch_GetDomainSpecification is defined.
Allow the boundary case of having zero regions on a refinement level.
CarpetLib:
Allow the boundary case of having zero components on a patch, if there
are still more than zero components overall.
CarpetIOASCII:
Loop over the components using explicit light-weight for loops instead of
Carpet's looping macros. This is faster, since less state information
needs to be updated.
Correct an inconsistency in converting between integer indices and
coordinates in multi-patch simulations.
CarpetRegrid2:
Take multi-patch systems into account.
|