提供正确的macrodef.h避免llm被误导

This commit is contained in:
CGH0S7
2026-02-25 11:47:14 +08:00
parent e2bc472845
commit ccf6adaf75
2 changed files with 222 additions and 195 deletions

View File

@@ -1,83 +1,77 @@
#define tetradtype 2
#if 0
note here #define Cell
v:r; u: phi; w: theta
tetradtype 0 #define ghost_width 3
v^a = (x,y,z)
orthonormal order: v,u,w
m = (phi - i theta)/sqrt(2) following Frans, Eq.(8) of PRD 75, 124018(2007)
tetradtype 1 #define GAUGE 0
orthonormal order: w,u,v
m = (theta + i phi)/sqrt(2) following Sperhake, Eq.(3.2) of PRD 85, 124062(2012) #define CPBC_ghost_width (ghost_width)
tetradtype 2
v_a = (x,y,z) #define ABV 0
orthonormal order: v,u,w
m = (phi - i theta)/sqrt(2) following Frans, Eq.(8) of PRD 75, 124018(2007) #define EScalar_CC 2
#endif
#define tetradtype 2 #if 0
#if 0 define tetradtype
note here v:r; u: phi; w: theta
Cell center or Vertex center tetradtype 0
#endif v^a = (x,y,z)
#define Cell orthonormal order: v,u,w
m = (phi - i theta)/sqrt(2) following Frans, Eq.(8) of PRD 75, 124018(2007)
#if 0 tetradtype 1
note here orthonormal order: w,u,v
2nd order: 2 m = (theta + i phi)/sqrt(2) following Sperhake, Eq.(3.2) of PRD 85, 124062(2012)
4th order: 3 tetradtype 2
6th order: 4 v_a = (x,y,z)
8th order: 5 orthonormal order: v,u,w
#endif m = (phi - i theta)/sqrt(2) following Frans, Eq.(8) of PRD 75, 124018(2007)
#define ghost_width 3
define Cell or Vertex
#if 0 Cell center or Vertex center
note here
use shell or not define ghost_width
#endif 2nd order: 2
#define WithShell 4th order: 3
6th order: 4
#if 0 8th order: 5
note here
use constraint preserving boundary condition or not define WithShell
only affect Z4c use shell or not
#endif
#define CPBC define CPBC
use constraint preserving boundary condition or not
#if 0 only affect Z4c
note here CPBC only supports WithShell
Gauge condition type
0: B^i gauge define GAUGE
1: David's puncture gauge 0: B^i gauge
2: MB B^i gauge 1: David puncture gauge
3: RIT B^i gauge 2: MB B^i gauge
4: MB beta gauge (beta gauge not means Eq.(3) of PRD 84, 124006) 3: RIT B^i gauge
5: RIT beta gauge (beta gauge not means Eq.(3) of PRD 84, 124006) 4: MB beta gauge (beta gauge not means Eq.(3) of PRD 84, 124006)
6: MGB1 B^i gauge 5: RIT beta gauge (beta gauge not means Eq.(3) of PRD 84, 124006)
7: MGB2 B^i gauge 6: MGB1 B^i gauge
#endif 7: MGB2 B^i gauge
#define GAUGE 2
define CPBC_ghost_width (ghost_width)
#if 0 buffer points for CPBC boundary
buffer points for CPBC boundary
#endif define ABV
#define CPBC_ghost_width (ghost_width) 0: using BSSN variable for constraint violation and psi4 calculation
1: using ADM variable for constraint violation and psi4 calculation
#if 0
using BSSN variable for constraint violation and psi4 calculation: 0 define EScalar_CC
using ADM variable for constraint violation and psi4 calculation: 1 Type of Potential and Scalar Distribution in F(R) Scalar-Tensor Theory
#endif 1: Case C of 1112.3928, V=0
#define ABV 0 2: shell with phi(r) = phi0 * a2^2/(1+a2^2), f(R) = R+a2*R^2 induced V
3: ground state of Schrodinger-Newton system, f(R) = R+a2*R^2 induced V
#if 0 4: a2 = +oo and phi(r) = phi0 * 0.5 * ( tanh((r+r0)/sigma) - tanh((r-r0)/sigma) )
Type of Potential and Scalar Distribution in F(R) Scalar-Tensor Theory 5: shell with phi(r) = phi0 * Exp(-(r-r0)**2/sigma), V = 0
1: Case C of 1112.3928, V=0
2: shell with a2^2*phi0/(1+a2^2), f(R) = R+a2*R^2 induced V #endif
3: ground state of Schrodinger-Newton system, f(R) = R+a2*R^2 induced V
4: a2 = oo and phi(r) = phi0 * 0.5 * ( tanh((r+r0)/sigma) - tanh((r-r0)/sigma) )
5: shell with phi(r) = phi0*Exp(-(r-r0)**2/sigma), V = 0
#endif
#define EScalar_CC 2

View File

@@ -1,112 +1,145 @@
#ifndef MICRODEF_H #ifndef MICRODEF_H
#define MICRODEF_H #define MICRODEF_H
#include "macrodef.fh" #include "macrodef.fh"
// application parameters // application parameters
/// **** #define SommerType 0
// sommerfeld boundary type
// 0: bam, 1: shibata #define GaussInt
#define SommerType 0
#define ABEtype 0
/// ****
// for Using Gauss-Legendre quadrature in theta direction //#define With_AHF
#define GaussInt #define Psi4type 0
/// **** //#define Point_Psi4
// 0: BSSN vacuum
// 1: coupled to scalar field #define RPS 1
// 2: Z4c vacuum
// 3: coupled to Maxwell field #define AGM 0
//
#define ABEtype 2 #define RPB 0
/// **** #define MAPBH 1
// using Apparent Horizon Finder
//#define With_AHF #define PSTR 0
/// **** #define REGLEV 0
// Psi4 calculation method
// 0: EB method //#define USE_GPU
// 1: 4-D method
// //#define CHECKDETAIL
#define Psi4type 0
//#define FAKECHECK
/// ****
// for Using point psi4 or not //
//#define Point_Psi4 // define SommerType
// sommerfeld boundary type
/// **** // 0: bam
// RestrictProlong in Step (0) or after Step (1) // 1: shibata
#define RPS 1 //
// define GaussInt
/// **** // for Using Gauss-Legendre quadrature in theta direction
// Enforce algebra constraint //
// for every RK4 sub step: 0 // define ABEtype
// only when iter_count == 3: 1 // 0: BSSN vacuum
// after routine Step: 2 // 1: coupled to scalar field
#define AGM 0 // 2: Z4c vacuum
// 3: coupled to Maxwell field
/// **** //
// Restrict Prolong using BAM style 1 or old style 0 // define With_AHF
#define RPB 0 // using Apparent Horizon Finder
//
/// **** // define Psi4type
// 1: move Analysis out ot 4 sub steps and treat PBH with Euler method // Psi4 calculation method
#define MAPBH 1 // 0: EB method
// 1: 4-D method
/// **** //
// parallel structure, 0: level by level, 1: considering all levels, 2: as 1 but reverse the CPU order, 3: Frank's scheme // define Point_Psi4
#define PSTR 0 // for Using point psi4 or not
//
/// **** // define RPS
// regrid for every level or for all levels at a time // RestrictProlong in Step (0) or after Step (1)
// 0: for every level; 1: for all //
#define REGLEV 0 // define AGM
// Enforce algebra constraint
/// **** // for every RK4 sub step: 0
// use gpu or not // only when iter_count == 3: 1
//#define USE_GPU // after routine Step: 2
//
/// **** // define RPB
// use checkpoint for every process // Restrict Prolong using BAM style 1 or old style 0
//#define CHECKDETAIL //
// define MAPBH
/// **** // 1: move Analysis out ot 4 sub steps and treat PBH with Euler method
// use FakeCheckPrepare to write CheckPoint //
//#define FAKECHECK // define PSTR
////================================================================ // parallel structure
// some basic parameters for numerical calculation // 0: level by level
#define dim 3 // 1: considering all levels
// 2: as 1 but reverse the CPU order
//#define Cell or Vertex in "microdef.fh" // 3: Frank's scheme
//
// ****** // define REGLEV
// buffer point number for mesh refinement interface // regrid for every level or for all levels at a time
#define buffer_width 6 // 0: for every level;
// 1: for all
// ****** //
// buffer point number shell-box interface, on shell // define USE_GPU
#define SC_width buffer_width // use gpu or not
// buffer point number shell-box interface, on box //
#define CS_width (2*buffer_width) // define CHECKDETAIL
// use checkpoint for every process
#if(buffer_width < ghost_width) //
#error we always assume buffer_width>ghost_width // define FAKECHECK
#endif // use FakeCheckPrepare to write CheckPoint
//
#define PACK 1
#define UNPACK 2 ////================================================================
// some basic parameters for numerical calculation
#define Mymax(a,b) (((a) > (b)) ? (a) : (b)) ////================================================================
#define Mymin(a,b) (((a) < (b)) ? (a) : (b))
#define dim 3
#define feq(a,b,d) (fabs(a-b)<d)
#define flt(a,b,d) ((a-b)<d) //#define Cell or Vertex in "macrodef.fh"
#define fgt(a,b,d) ((a-b)>d)
#define buffer_width 6
#define TINY 1e-10
#define SC_width buffer_width
#endif /* MICRODEF_H */
#define CS_width (2*buffer_width)
//
// define Cell or Vertex in "macrodef.fh"
//
// define buffer_width
// buffer point number for mesh refinement interface
//
// define SC_width buffer_width
// buffer point number shell-box interface, on shell
//
// define CS_width
// buffer point number shell-box interface, on box
//
#if(buffer_width < ghost_width)
# error we always assume buffer_width>ghost_width
#endif
#define PACK 1
#define UNPACK 2
#define Mymax(a,b) (((a) > (b)) ? (a) : (b))
#define Mymin(a,b) (((a) < (b)) ? (a) : (b))
#define feq(a,b,d) (fabs(a-b)<d)
#define flt(a,b,d) ((a-b)<d)
#define fgt(a,b,d) ((a-b)>d)
#define TINY 1e-10
#endif /* MICRODEF_H */