April 2002

The Noise thorn can be used to place random values on Cactus grid functions at initial data and at
the boundaries during evolution. This can be used to carry out “robust stability” tests, such as those
proposed by Jeff Winicour.

To apply a random perturbation to initial data, set noise::apply_id_noise="yes". Then each grid function listed in the parameter noise::id_vars will be adjusted by a random factor. The maximum size of the random perturbation is controlled by the parameter noise::amplitude. The perturbations are applied during the CCTK_POSTINITIAL time bin.

A random number will be added to each point on the boundary of grid functions listed in the noise::bc_vars parameter if the flag noise::apply_bc_noise="yes" is set. As with the initial data, the maximum size of the perturbation is given by the noise::amplitude parameter. The adjustments are applied at each CCTK_POSTSTEP.

The following parameters can be used to apply a random adjustment of size \(A=\pm 0.0005\) to the initial data and boundaries of the metric variables.

ActiveThorns = "... Noise ..." noise::apply_id_noise = "yes" noise::id_vars = "admbase::metric" noise::apply_bc_noise = "yes" noise::bc_vars = "admbase::metric" noise::amplitude = 0.001

amplitude | Scope: private | REAL |

Description: Maximum absolute value of random data
| ||

Range | Default: 0.000001 | |

0: | Positive number
| |

apply_bc_noise | Scope: private | BOOLEAN |

Description: Add random noise to initial data
| ||

Default: no | ||

apply_id_noise | Scope: private | BOOLEAN |

Description: Add random noise to initial data
| ||

Default: no | ||

bc_vars | Scope: private | STRING |

Description: Variables to modify with noise at boundary
| ||

Range | Default: (none) | |

.* | A regex which matches everything
| |

id_vars | Scope: private | STRING |

Description: Initial data variables to modify with noise
| ||

Range | Default: (none) | |

.* | A regex which matches everything
| |

noise_boundaries | Scope: private | BOOLEAN |

Description: At which boundaries to apply noise
| ||

Default: yes | ||

noise_stencil | Scope: private | INT |

Description: Number of boundary points
| ||

Range | Default: 1 | |

0:* | 0:*
| |

Implements:

noise

Inherits:

grid

Uses header:

Symmetry.h

This section lists all the variables which are assigned storage by thorn CactusNumerical/Noise. 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.

NONE

CCTK_INITIAL (conditional)

id_noise

add noise to initial data

After: | admbase_initialdata | |

admbase_initialgauge | ||

hydrobase_initial | ||

Before: | admbase_postinitial | |

hydrobase_prim2coninitial | ||

Language: | c | |

Type: | function | |

CCTK_POSTSTEP (conditional)

bc_noise

add noise to boundary condition

Language: | c | |

Type: | function | |

CCTK_POSTRESTRICT (conditional)

bc_noise

add noise to boundary condition

Language: | c | |

Type: | function | |