Select Git revision
domRectangle.dat
domRectangle.dat 2.89 KiB
// =================================================================================================
// Geometry: Scattering case
If(FLAG_PBM == PBM_SCATT_RECT)
// Subdomains
DefineConstant[
Lx = {7.5, Min 0.01, Max 20, Step 0.01, Name "Input/1Model/40Domain length (Lx)"},
Ly = {7.5, Min 0.01, Max 20, Step 0.01, Name "Input/1Model/41Domain length (Ly)"},
X_SCA = { 1.25, Min -10, Max 10, Step 0.01, Name "Input/1Model/42Scatterer position (x)"},
Y_SCA = { 1.25, Min -10, Max 10, Step 0.01, Name "Input/1Model/43Scatterer position (y)"},
R_SCA = { 1., Min 0.01, Max 20, Step 0.01, Name "Input/1Model/44Scatterer radius"},
Nx_DOM = {3, Min 1, Max 10, Step 1, Name "Input/1Model/50Nx subdomains"},
Ny_DOM = {3, Min 1, Max 10, Step 1, Name "Input/1Model/51Ny subdomains"},
TWIST = {0, Min 0, Max 1.5, Step 0.5, Name "Input/1Model/52 TWIST"}
];
X0_DOM = -X_SCA;
Y0_DOM = -Y_SCA;
// X0_DOM = -Lx/Nx_DOM/2.;
// Y0_DOM = -Ly/Ny_DOM/2.;
DefineConstant[
// LAMBDA = {0.5, Min 0.1, Max 30, Step 0.1, Name "Input/03Wavelength"},
WAVENUMBER = {4*Pi, Min 1, Max 24, Step 1, Name "Input/03Wavenumber"},
N_LAMBDA = {10, Min 5, Max 30, Step 1, Name "Input/04Points per wavelength"}
];
//WAVENUMBER = (2*Pi)/LAMBDA;
LAMBDA = (2*Pi)/WAVENUMBER;
FREQ = WAVENUMBER/(2*Pi);
LC = LAMBDA/N_LAMBDA;
EndIf
// =================================================================================================
// Geometry: Marmousi case
If(FLAG_PBM == PBM_MARMOUSI)
// Subdomains
DefineConstant[
Nx_DOM = {15, Min 1, Max 10, Step 1, Name "Input/1Model/50Nx subdomains"},
Ny_DOM = {4, Min 1, Max 10, Step 1, Name "Input/1Model/51Ny subdomains"}
];
TWIST = 0;
Lx = 9192.;
Ly = 2904.;
X0_DOM = 0.;
Y0_DOM = -Ly;
R_SCA = 1000;
X_SOU = 4585.;
Y_SOU = -10.;
Lx_SDOM = Lx/Nx_DOM;
Ly_SDOM = Ly/Ny_DOM;
I_SOU = Ceil[(X_SOU-X0_DOM)/Lx_SDOM]-1;
J_SOU = Ceil[(Y_SOU-Y0_DOM)/Ly_SDOM]-1;
Idom_SOU = J_SOU*Nx_DOM + I_SOU;
//Printf("I_SOU: %g",I_SOU);
//Printf("J_SOU: %g",J_SOU);
//Printf("Idom_SOU: %g",Idom_SOU);
DefineConstant[
FREQ = {10, Min 0.1, Max 30, Step 0.1, Name "Input/03Frequency"}, //10
N_LAMBDA = {5, Name "Input/04Points per wavelength"} //10
];
// meshing for shortest wavelength
cMin = 1500.;
WAVENUMBER = 2*Pi*FREQ/cMin;
LAMBDA = 2*Pi/WAVENUMBER ;
LC = LAMBDA/N_LAMBDA;
EndIf
// =================================================================================================
N_DOM = Nx_DOM*Ny_DOM;
// =================================================================================================
If(FLAG_PBM == PBM_SCATT_RECT)
TAG_SCA = 1000;
EndIf
If(FLAG_PBM == PBM_MARMOUSI)
TAG_SOU = 1000;
EndIf
For iDom In {0:N_DOM-1}
TAG_DOM~{iDom} = 2000 + iDom;
For iEdge In {0:3}
TAG_BND~{iDom}~{iEdge} = 3000 + 4*iDom + iEdge;
EndFor
For iCorner In {0:3}
TAG_CRN~{iDom}~{iCorner} = 4000 + 4*iDom + iCorner;
EndFor
EndFor