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 compact 0
description Last iteration at which there was a regridding
dimensions 0
distribution CONSTANT
group type SCALAR
timelevels 1
variable type INT




last_map last_map compact 0
description Last map at which there was a regridding at last_iteration
dimensions 0
distribution CONSTANT
group type SCALAR
timelevels 1
variable type INT




old_active old_active compact 0
description Old whether this centre is active
dimensions 0
distribution CONSTANT
group type SCALAR
timelevels 1
vararray_size 10
variable type INT




old_num_levels old_num_levels compact 0
description Old number of refinement levels
dimensions 0
distribution CONSTANT
group type SCALAR
timelevels 1
vararray_size 10
variable type INT




old_positions compact 0
old_position_x description Old positions of refined regions
old_position_y dimensions 0
old_position_z distribution CONSTANT
group type SCALAR
timelevels 1
vararray_size 10
variable type REAL




old_radiixyz compact 0
old_radius_x description Old radii of refined regions for each level
old_radius_y dimensions 1
old_radius_z distribution CONSTANT
group type ARRAY
size 30
timelevels 1
vararray_size 10
variable type REAL




7.0.2 PUBLIC GROUPS





  Group Names     Variable Names   Details    




active active compact 0
description Whether this centre is active
dimensions 0
distribution CONSTANT
group type SCALAR
timelevels 1
vararray_size 10
variable type INT




num_levels num_levels compact 0
description Number of refinement levels
dimensions 0
distribution CONSTANT
group type SCALAR
timelevels 1
vararray_size 10
variable type INT




positions compact 0
position_x description Positions of refined regions
position_y dimensions 0
position_z distribution CONSTANT
group type SCALAR
timelevels 1
vararray_size 10
variable type REAL




radii compact 0
radius description Radii of refined regions for each level
dimensions 1
distribution CONSTANT
group type ARRAY
size 30
timelevels 1
vararray_size 10
variable type REAL




radiixyz compact 0
radius_x description Radii of refined regions for each level
radius_y dimensions 1
radius_z distribution CONSTANT
group type ARRAY
size 30
timelevels 1
vararray_size 10
variable type REAL




level_mask level_mask compact 0
description Requested refinement level for this grid point
dimensions 3
distribution DEFAULT
group type GF
tags checkpoint=”no” prolongation=”none”
timelevels 1
variable type REAL




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