diff --git a/ElectromagneticScattering/scattererTmatrix.geo b/ElectromagneticScattering/scattererTmatrix.geo new file mode 100644 index 0000000000000000000000000000000000000000..01c68c93867729f200a00f3e4258f45d23584907 --- /dev/null +++ b/ElectromagneticScattering/scattererTmatrix.geo @@ -0,0 +1,76 @@ +/////////////////////////////// +// Author : Guillaume Demesy // +// scattererTmatrix.geo // +/////////////////////////////// + +Include "scattererTmatrix_data.geo"; +SetFactory("OpenCASCADE"); + +In_n = Sqrt[Fabs[epsr_In_re]]; + +paramaille_pml = paramaille/1.1; + +Out_lc = lambda_bg/paramaille; +PML_lc = lambda_bg/paramaille_pml; +In_lc = lambda0/(paramaille*In_n*refine_scat); +CenterScat_lc = lambda0/(paramaille*In_n); +If(flag_shape==ELL) + Sphere (1) = { 0,0,0,ell_rx}; + Dilate { { 0,0,0 }, { 1, ell_ry/ell_rx, ell_rz/ell_rx } } { Volume{1}; } +EndIf +If(flag_shape==PARALL) + Box (1) = {-par_ax/2,-par_ay/2,-par_az/2,par_ax,par_ay,par_az}; +EndIf +If(flag_shape==CYL) + Cylinder (1) = {0,0,-cyl_h/2,0,0,cyl_h,cyl_rx}; + Dilate { { 0,0,0 }, { 1 , cyl_ry/cyl_rx , 1} } { Volume{1}; } +EndIf +If (flag_shape==CONE) + Cone (1) = {0,0,-cone_h/2,0,0,cone_h,cone_rx,0}; + Dilate { { 0,0,0 }, { 1 , cone_ry/cone_rx , 1} } { Volume{1}; } +EndIf +If (flag_shape==TOR) + Torus (1) = {0,0,0,tor_r1,tor_r2x,tor_angle*Pi/180}; + Dilate { { 0,0,0 }, { 1 , 1 , tor_r2z/tor_r2x} } { Volume{1}; } +EndIf + +Sphere (2) = { 0,0,0,r_pml_in}; +Sphere (3) = { 0,0,0,r_pml_out}; + +Coherence; + +Physical Volume("Scatterer" ,1) = {1}; +Physical Volume("Background",2) = {2}; +Physical Volume("PML" ,3) = {3}; + +If(flag_shape==ELL) + Physical Surface("SurfInt",10) = {2}; + Physical Surface("SurfPML",20) = {3}; +EndIf +If(flag_shape==PARALL) + Physical Surface("SurfInt",10) = {7}; + Physical Surface("SurfPML",20) = {8}; +EndIf +If(flag_shape==CYL) + Physical Surface("SurfInt",10) = {4}; + Physical Surface("SurfPML",20) = {5}; +EndIf +If(flag_shape==CONE) + Physical Surface("SurfInt",10) = {3}; + Physical Surface("SurfPML",20) = {4}; +EndIf +If(flag_shape==TOR) + Physical Surface("SurfInt",10) = {4}; + Physical Surface("SurfPML",20) = {5}; +EndIf + +Characteristic Length{PointsOf{Physical Volume{3};}} = PML_lc; +Characteristic Length{PointsOf{Physical Volume{2};}} = Out_lc; +Characteristic Length{PointsOf{Physical Volume{1};}} = In_lc; + +Solver.AutoMesh=2; +Geometry.Points = 1; +Mesh.VolumeEdges = 0; + +Mesh.ElementOrder = 2; +Mesh.HighOrderOptimize = 1;