CarpetRegrid2

Erik Schnetter <schnetter@cct.lsu.edu>

February 15, 2006

Abstract

1 Introduction

2 Physical System

3 Numerical Implementation

4 Using This Thorn

4.1 Obtaining This Thorn

4.2 Basic Usage

4.3 Special Behaviour

4.4 Interaction With Other Thorns

4.5 Examples

4.6 Support and Feedback

5 History

5.1 Thorn Source Code

5.2 Thorn Documentation

5.3 Acknowledgements

References

6 Parameters




active_1
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_10
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_2
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_3
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_4
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_5
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_6
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_7
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_8
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






active_9
Scope: private  BOOLEAN



Description: Is this region active?



  Default: yes






adaptive_block_size
Scope: private  INT



Description: Block size for adaptive refinement



Range   Default: 8
1:*






adaptive_block_size_x
Scope: private  INT



Description: Block size in x direction for adaptive refinement



Range   Default: -1
-1
use adaptive_block_size
1:*






adaptive_block_size_y
Scope: private  INT



Description: Block size in y direction for adaptive refinement



Range   Default: -1
-1
use adaptive_block_size
1:*






adaptive_block_size_z
Scope: private  INT



Description: Block size in z direction for adaptive refinement



Range   Default: -1
-1
use adaptive_block_size
1:*






adaptive_refinement
Scope: private  BOOLEAN



Description: Use level_mask for adaptive refinement



  Default: no






add_levels_automatically
Scope: private  BOOLEAN



Description: Automatically add a new refinement level at each regrid



  Default: no






boundary_shiftout
Scope: private  INT



Description: Number of grid points added to the refinement boundary radius



Range   Default: (none)
*:*






ensure_proper_nesting
Scope: private  BOOLEAN



Description: Ensure proper nesting automatically



  Default: yes






expect_symmetric_grids
Scope: private  BOOLEAN



Description: Expect a grid structure that is symmetric about the origin, and abort if it is not



  Default: no






freeze_unaligned_levels
Scope: private  BOOLEAN



Description: Do not change refinement levels that do not exist at this time



  Default: no






freeze_unaligned_parent_levels
Scope: private  BOOLEAN



Description: Do not change refinement levels where the parent does not exist at this time



  Default: no






granularity
Scope: private  INT



Description: Granularity of size of refined regions



Range   Default: 1
1:*






min_distance
Scope: private  INT



Description: Minimum distance (in grid points) between coarse and fine grid boundaries



Range   Default: 4
0:*






min_fraction
Scope: private  REAL



Description: Minimum fraction of required refined points that need to be present in a refined region



Range   Default: 0.9
0:*






movement_threshold_1
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_10
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_2
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_3
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_4
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_5
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_6
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_7
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_8
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






movement_threshold_9
Scope: private  REAL



Description: Minimum movement to trigger a regridding



Range   Default: 0.0
0:*






num_centres
Scope: private  INT



Description: Number of refinement centres



Range   Default: (none)
0:10






num_levels_1
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_10
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_2
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_3
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_4
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_5
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_6
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_7
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_8
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






num_levels_9
Scope: private  INT



Description: Number of refinement levels for this centre



Range   Default: 1
1:30






position_x_1
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_10
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_2
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_3
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_4
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_5
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_6
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_7
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_8
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_x_9
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_1
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_10
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_2
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_3
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_4
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_5
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_6
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_7
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_8
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_y_9
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_1
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_10
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_2
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_3
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_4
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_5
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_6
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_7
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_8
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






position_z_9
Scope: private  REAL



Description: Position of this centre



Range   Default: 0.0
*:*






radius_1
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_10
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_2
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_3
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_4
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_5
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_6
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_7
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_8
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_9
Scope: private  REAL



Description: Radius of refined region for this level of this centre



Range   Default: -1.0
-1
illegal
0:*






radius_rel_change_threshold_1
Scope: private  REAL



Description: Minimum RELATIVE change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_10
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_2
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_3
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_4
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_5
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_6
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_7
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_8
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_rel_change_threshold_9
Scope: private  REAL



Description: Minimum change in radius to trigger a regridding



Range   Default: 0.0
0.0:*






radius_x_1
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_10
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_2
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_3
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_4
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_5
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_6
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_7
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_8
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_x_9
Scope: private  REAL



Description: x-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_1
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_10
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_2
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_3
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_4
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_5
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_6
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_7
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_8
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_y_9
Scope: private  REAL



Description: y-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_1
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_10
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_2
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_3
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_4
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_5
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_6
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_7
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_8
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






radius_z_9
Scope: private  REAL



Description: z-radius of refined region for this level of this centre



Range   Default: -1.0
-1
ignore this radius
0:*






regrid_every
Scope: private  INT



Description: Regrid every n time steps



Range   Default: (none)
-1
regrid never
regrid during initial data calculation only
1:*
regrid every n time steps






snap_to_coarse
Scope: private  BOOLEAN



Description: Ensure that the fine grid extent coincides with coarse grid points



  Default: no






symmetry_parity
Scope: private  BOOLEAN



Description: parity



  Default: no






symmetry_periodic_x
Scope: private  BOOLEAN



Description: Ensure a periodicity symmetry in the x direction



  Default: no






symmetry_periodic_y
Scope: private  BOOLEAN



Description: Ensure a periodicity symmetry in the y direction



  Default: no






symmetry_periodic_z
Scope: private  BOOLEAN



Description: Ensure a periodicity symmetry in the z direction



  Default: no






symmetry_rotating180
Scope: private  BOOLEAN



Description: Ensure a 180 degree rotating symmetry about the z axis



  Default: no






symmetry_rotating90
Scope: private  BOOLEAN



Description: Ensure a 90 degree rotating symmetry about the z axis



  Default: no






verbose
Scope: private  BOOLEAN



Description: Display regridding information on the terminal



  Default: no






veryverbose
Scope: private  BOOLEAN



Description: Display much regridding information on the terminal



  Default: no



7 Interfaces

General

Implements:

carpetregrid2

Grid Variables

7.0.1 PRIVATE GROUPS




  Group Names    Variable Names    Details   




last_iteration last_iteration   compact0
  descriptionLast iteration at which there was a regridding
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 variable typeINT




last_map last_map   compact0
  descriptionLast map at which there was a regridding at last_iteration
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 variable typeINT




old_active old_active   compact0
  descriptionOld whether this centre is active
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 vararray_size10
 variable typeINT




old_num_levels old_num_levels   compact0
  descriptionOld number of refinement levels
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 vararray_size10
 variable typeINT




old_positions   compact0
old_position_x   descriptionOld positions of refined regions
old_position_y   dimensions0
old_position_z   distributionCONSTANT
  group typeSCALAR
  timelevels1
 vararray_size10
 variable typeREAL




old_radiixyz   compact0
old_radius_x   descriptionOld radii of refined regions for each level
old_radius_y   dimensions1
old_radius_z   distributionCONSTANT
  group typeARRAY
  size30
  timelevels1
 vararray_size10
 variable typeREAL




7.0.2 PUBLIC GROUPS




  Group Names    Variable Names    Details   




active active   compact0
  descriptionWhether this centre is active
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 vararray_size10
 variable typeINT




num_levels num_levels   compact0
  descriptionNumber of refinement levels
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 vararray_size10
 variable typeINT




positions   compact0
position_x   descriptionPositions of refined regions
position_y   dimensions0
position_z   distributionCONSTANT
  group typeSCALAR
  timelevels1
 vararray_size10
 variable typeREAL




radii   compact0
radius   descriptionRadii of refined regions for each level
  dimensions1
  distributionCONSTANT
  group typeARRAY
  size30
  timelevels1
 vararray_size10
 variable typeREAL




radiixyz   compact0
radius_x   descriptionRadii of refined regions for each level
radius_y   dimensions1
radius_z   distributionCONSTANT
  group typeARRAY
  size30
  timelevels1
 vararray_size10
 variable typeREAL




level_mask level_mask   compact0
  descriptionRequested refinement level for this grid point
  dimensions3
  distributionDEFAULT
  group typeGF
  tagscheckpoint=”no” prolongation=”none”
  timelevels1
 variable typeREAL




Uses header:

Timer.hh

bbox.hh

bboxset.hh

defs.hh

dh.hh

gh.hh

mpi_string.hh

region.hh

vect.hh

carpet.hh

Provides:

Carpet_Regrid to

Carpet_RegridMaps to

8 Schedule

This section lists all the variables which are assigned storage by thorn Carpet/CarpetRegrid2. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

Storage

 

Always: Conditional:
last_iteration last_map level_mask
active num_levels positions radii radiixyz  
old_active old_positions old_num_levels old_radiixyz 
   

Scheduled Functions

CCTK_PARAMCHECK

  carpetregrid2_paramcheck

  check parameters

 

 Language:c
 Type: function

CCTK_WRAGH

  carpetregrid2_initialise

  initialise locations of refined regions

 

 Language:c
 Options: global
 Type: function
 Writes: carpetregrid2::radius
   radiixyz
   carpetregrid2::last_iteration
   last_map
   active
   num_levels
   carpetregrid2::positions
   old_positions