Difference between revisions of "Rewrite McLachlan"

From Einstein Toolkit Documentation
Jump to: navigation, search
Line 1: Line 1:
 +
==Overview==
 
The source code of McLachlan -- i.e. the Kranc script that generates the McLachlan thorn family, as well as the associated helper code -- has become somewhat messy over the years. We have begun to clean things up in the "rewrite" branch. These cleanups include:
 
The source code of McLachlan -- i.e. the Kranc script that generates the McLachlan thorn family, as well as the associated helper code -- has become somewhat messy over the years. We have begun to clean things up in the "rewrite" branch. These cleanups include:
* asfd
+
* Avoid duplication of equations. Instead of having one calculation per routine there are now a few "master calculations" that define many equations. The actual calculations (routines) are then automatically generated from respective master calculations by choosing which variables should be defined.
* j
+
* Rename some parameters. Some parameters have names that are difficult to understand, and that were taken from the original "BSSN_MoL" code. For example, the real parameter "LapseAdvectionCoeff" is now an integer parameter "advectLapse". Also, all parameters now follow the same naming scheme -- starts with underscore, then camelCase.
 +
* Rename the grid function "phi" to "phiW", since its content depends on what formulation is used.
 +
* Code generation is now more flexible. Many choices (e.g. BSSN formulation, whether to evolve A, finite differencing order) can now be made either at Kranc time or at run time. This allows generating both generic thorns or highly tuned thorns from the same source code.
 +
* Some gauge conditions have been corrected for previously unused parameter combinations. In particular, it is now possible to use lapse and shift advection when A is evolved, e.g. when evolving Kerr-Schild data.
 +
* Some little-used features were removed, e.g. the ability to set up Minkowski initial conditions without using ADMBase.
 +
 
 +
==User-Visible Changes==
 +
Apart from improvements and new features, these changes break backward compatibility in two ways:
 +
* Parameter names change. For backward compatibility, it is still possible to use the old parameter names. At run time, the old parameters are interpreted and the new parameters are set correspondingly (if possible), and a warning is produced.
 +
* The grid function "phi" and its group "ML_log_confac" are renamed to "phiW" and "ML_confac". It is not possible to add a backward compatibility layer for this.

Revision as of 21:10, 1 January 2015

Overview

The source code of McLachlan -- i.e. the Kranc script that generates the McLachlan thorn family, as well as the associated helper code -- has become somewhat messy over the years. We have begun to clean things up in the "rewrite" branch. These cleanups include:

  • Avoid duplication of equations. Instead of having one calculation per routine there are now a few "master calculations" that define many equations. The actual calculations (routines) are then automatically generated from respective master calculations by choosing which variables should be defined.
  • Rename some parameters. Some parameters have names that are difficult to understand, and that were taken from the original "BSSN_MoL" code. For example, the real parameter "LapseAdvectionCoeff" is now an integer parameter "advectLapse". Also, all parameters now follow the same naming scheme -- starts with underscore, then camelCase.
  • Rename the grid function "phi" to "phiW", since its content depends on what formulation is used.
  • Code generation is now more flexible. Many choices (e.g. BSSN formulation, whether to evolve A, finite differencing order) can now be made either at Kranc time or at run time. This allows generating both generic thorns or highly tuned thorns from the same source code.
  • Some gauge conditions have been corrected for previously unused parameter combinations. In particular, it is now possible to use lapse and shift advection when A is evolved, e.g. when evolving Kerr-Schild data.
  • Some little-used features were removed, e.g. the ability to set up Minkowski initial conditions without using ADMBase.

User-Visible Changes

Apart from improvements and new features, these changes break backward compatibility in two ways:

  • Parameter names change. For backward compatibility, it is still possible to use the old parameter names. At run time, the old parameters are interpreted and the new parameters are set correspondingly (if possible), and a warning is produced.
  • The grid function "phi" and its group "ML_log_confac" are renamed to "phiW" and "ML_confac". It is not possible to add a backward compatibility layer for this.