From ccf6adaf75cca50ca6e4b9fe805123fa9b0dfc9c Mon Sep 17 00:00:00 2001 From: CGH0S7 Date: Wed, 25 Feb 2026 11:47:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E6=AD=A3=E7=A1=AE=E7=9A=84ma?= =?UTF-8?q?crodef.h=E9=81=BF=E5=85=8Dllm=E8=A2=AB=E8=AF=AF=E5=AF=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AMSS_NCKU_source/macrodef.fh | 160 +++++++++++----------- AMSS_NCKU_source/macrodef.h | 257 ++++++++++++++++++++--------------- 2 files changed, 222 insertions(+), 195 deletions(-) diff --git a/AMSS_NCKU_source/macrodef.fh b/AMSS_NCKU_source/macrodef.fh index ead5fe0..84fbf50 100644 --- a/AMSS_NCKU_source/macrodef.fh +++ b/AMSS_NCKU_source/macrodef.fh @@ -1,83 +1,77 @@ - - -#if 0 -note here -v:r; u: phi; w: theta -tetradtype 0 -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 -orthonormal order: w,u,v -m = (theta + i phi)/sqrt(2) following Sperhake, Eq.(3.2) of PRD 85, 124062(2012) -tetradtype 2 -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) -#endif -#define tetradtype 2 - -#if 0 -note here -Cell center or Vertex center -#endif -#define Cell - -#if 0 -note here -2nd order: 2 -4th order: 3 -6th order: 4 -8th order: 5 -#endif -#define ghost_width 3 - -#if 0 -note here -use shell or not -#endif -#define WithShell - -#if 0 -note here -use constraint preserving boundary condition or not -only affect Z4c -#endif -#define CPBC - -#if 0 -note here -Gauge condition type -0: B^i gauge -1: David's puncture gauge -2: MB B^i gauge -3: RIT B^i gauge -4: MB beta gauge (beta gauge not means Eq.(3) of PRD 84, 124006) -5: RIT beta gauge (beta gauge not means Eq.(3) of PRD 84, 124006) -6: MGB1 B^i gauge -7: MGB2 B^i gauge -#endif -#define GAUGE 2 - -#if 0 -buffer points for CPBC boundary -#endif -#define CPBC_ghost_width (ghost_width) - -#if 0 -using BSSN variable for constraint violation and psi4 calculation: 0 -using ADM variable for constraint violation and psi4 calculation: 1 -#endif -#define ABV 0 - -#if 0 -Type of Potential and Scalar Distribution in F(R) Scalar-Tensor Theory -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 -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 - - + +#define tetradtype 2 + +#define Cell + +#define ghost_width 3 + + + +#define GAUGE 0 + +#define CPBC_ghost_width (ghost_width) + +#define ABV 0 + +#define EScalar_CC 2 + +#if 0 + +define tetradtype + v:r; u: phi; w: theta + tetradtype 0 + 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 + orthonormal order: w,u,v + m = (theta + i phi)/sqrt(2) following Sperhake, Eq.(3.2) of PRD 85, 124062(2012) + tetradtype 2 + 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) + +define Cell or Vertex + Cell center or Vertex center + +define ghost_width + 2nd order: 2 + 4th order: 3 + 6th order: 4 + 8th order: 5 + +define WithShell + use shell or not + +define CPBC + use constraint preserving boundary condition or not + only affect Z4c + CPBC only supports WithShell + +define GAUGE + 0: B^i gauge + 1: David puncture gauge + 2: MB B^i gauge + 3: RIT B^i gauge + 4: MB beta gauge (beta gauge not means Eq.(3) of PRD 84, 124006) + 5: RIT beta gauge (beta gauge not means Eq.(3) of PRD 84, 124006) + 6: MGB1 B^i gauge + 7: MGB2 B^i gauge + +define CPBC_ghost_width (ghost_width) + buffer points for CPBC boundary + +define ABV + 0: using BSSN variable for constraint violation and psi4 calculation + 1: using ADM variable for constraint violation and psi4 calculation + +define EScalar_CC +Type of Potential and Scalar Distribution in F(R) Scalar-Tensor Theory + 1: Case C of 1112.3928, V=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 + 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 + diff --git a/AMSS_NCKU_source/macrodef.h b/AMSS_NCKU_source/macrodef.h index 164785a..631f33b 100644 --- a/AMSS_NCKU_source/macrodef.h +++ b/AMSS_NCKU_source/macrodef.h @@ -1,112 +1,145 @@ - -#ifndef MICRODEF_H -#define MICRODEF_H - -#include "macrodef.fh" - -// application parameters - -/// **** -// sommerfeld boundary type -// 0: bam, 1: shibata -#define SommerType 0 - -/// **** -// for Using Gauss-Legendre quadrature in theta direction -#define GaussInt - -/// **** -// 0: BSSN vacuum -// 1: coupled to scalar field -// 2: Z4c vacuum -// 3: coupled to Maxwell field -// -#define ABEtype 2 - -/// **** -// using Apparent Horizon Finder -//#define With_AHF - -/// **** -// Psi4 calculation method -// 0: EB method -// 1: 4-D method -// -#define Psi4type 0 - -/// **** -// for Using point psi4 or not -//#define Point_Psi4 - -/// **** -// RestrictProlong in Step (0) or after Step (1) -#define RPS 1 - -/// **** -// Enforce algebra constraint -// for every RK4 sub step: 0 -// only when iter_count == 3: 1 -// after routine Step: 2 -#define AGM 0 - -/// **** -// Restrict Prolong using BAM style 1 or old style 0 -#define RPB 0 - -/// **** -// 1: move Analysis out ot 4 sub steps and treat PBH with Euler method -#define MAPBH 1 - -/// **** -// parallel structure, 0: level by level, 1: considering all levels, 2: as 1 but reverse the CPU order, 3: Frank's scheme -#define PSTR 0 - -/// **** -// regrid for every level or for all levels at a time -// 0: for every level; 1: for all -#define REGLEV 0 - -/// **** -// use gpu or not -//#define USE_GPU - -/// **** -// use checkpoint for every process -//#define CHECKDETAIL - -/// **** -// use FakeCheckPrepare to write CheckPoint -//#define FAKECHECK -////================================================================ -// some basic parameters for numerical calculation -#define dim 3 - -//#define Cell or Vertex in "microdef.fh" - -// ****** -// buffer point number for mesh refinement interface -#define buffer_width 6 - -// ****** -// buffer point number shell-box interface, on shell -#define SC_width buffer_width -// buffer point number shell-box interface, on box -#define CS_width (2*buffer_width) - -#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 TINY 1e-10 - -#endif /* MICRODEF_H */ + +#ifndef MICRODEF_H +#define MICRODEF_H + +#include "macrodef.fh" + +// application parameters + +#define SommerType 0 + +#define GaussInt + +#define ABEtype 0 + +//#define With_AHF +#define Psi4type 0 + +//#define Point_Psi4 + +#define RPS 1 + +#define AGM 0 + +#define RPB 0 + +#define MAPBH 1 + +#define PSTR 0 + +#define REGLEV 0 + +//#define USE_GPU + +//#define CHECKDETAIL + +//#define FAKECHECK + +// +// define SommerType +// sommerfeld boundary type +// 0: bam +// 1: shibata +// +// define GaussInt +// for Using Gauss-Legendre quadrature in theta direction +// +// define ABEtype +// 0: BSSN vacuum +// 1: coupled to scalar field +// 2: Z4c vacuum +// 3: coupled to Maxwell field +// +// define With_AHF +// using Apparent Horizon Finder +// +// define Psi4type +// Psi4 calculation method +// 0: EB method +// 1: 4-D method +// +// define Point_Psi4 +// for Using point psi4 or not +// +// define RPS +// RestrictProlong in Step (0) or after Step (1) +// +// define AGM +// Enforce algebra constraint +// for every RK4 sub step: 0 +// only when iter_count == 3: 1 +// after routine Step: 2 +// +// define RPB +// Restrict Prolong using BAM style 1 or old style 0 +// +// define MAPBH +// 1: move Analysis out ot 4 sub steps and treat PBH with Euler method +// +// define PSTR +// parallel structure +// 0: level by level +// 1: considering all levels +// 2: as 1 but reverse the CPU order +// 3: Frank's scheme +// +// define REGLEV +// regrid for every level or for all levels at a time +// 0: for every level; +// 1: for all +// +// define USE_GPU +// use gpu or not +// +// define CHECKDETAIL +// use checkpoint for every process +// +// define FAKECHECK +// use FakeCheckPrepare to write CheckPoint +// + +////================================================================ +// some basic parameters for numerical calculation +////================================================================ + +#define dim 3 + +//#define Cell or Vertex in "macrodef.fh" + +#define buffer_width 6 + +#define SC_width buffer_width + +#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 TINY 1e-10 + +#endif /* MICRODEF_H */ +