diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py index 85ce9d8e..9e080890 100755 --- a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py +++ b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate.py @@ -34,7 +34,7 @@ gv1 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), gv2 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), filename=Path(*parts[:-1], parts[-1] + '_f'), output_type='f') -pmls = {'CFS-PML': {'pml_type': gprMax.PMLFormulation(pml='HORIPML'), +pmls = {'CFS-PML': {'pml': gprMax.PMLProps(formulation='HORIPML', thickness=10), # Parameters from http://dx.doi.org/10.1109/TAP.2018.2823864 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='constant', alphascalingdirection='forward', @@ -46,74 +46,74 @@ pmls = {'CFS-PML': {'pml_type': gprMax.PMLFormulation(pml='HORIPML'), sigmascalingdirection='forward', sigmamin=0, sigmamax=1.1 * ((4 + 1) / (150 * np.pi * dl)))]}, - 'HORIPML-1': {'pml_type': gprMax.PMLFormulation(pml='HORIPML'), - # Parameters from http://dx.doi.org/10.1109/TAP.2011.2180344 - 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='constant', - alphascalingdirection='forward', - alphamin=0, alphamax=0, - kappascalingprofile='quartic', - kappascalingdirection='forward', - kappamin=1, kappamax=12, - sigmascalingprofile='quartic', - sigmascalingdirection='forward', - sigmamin=0, - sigmamax=0.7 * ((4 + 1) / (150 * np.pi * dl)))]}, - 'HORIPML-2': {'pml_type': gprMax.PMLFormulation(pml='HORIPML'), - # Parameters from http://dx.doi.org/10.1109/TAP.2018.2823864 - 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='constant', - alphascalingdirection='forward', - alphamin=0, alphamax=0, - kappascalingprofile='constant', - kappascalingdirection='forward', - kappamin=1, kappamax=1, - sigmascalingprofile='sextic', - sigmascalingdirection='forward', - sigmamin=0, - sigmamax=0.275 / (150 * np.pi * dl)), - gprMax.PMLCFS(alphascalingprofile='sextic', - alphascalingdirection='forward', - alphamin=0.07, alphamax=0.07 + (0.275 / (150 * np.pi * dl)), - kappascalingprofile='cubic', - kappascalingdirection='forward', - kappamin=1, kappamax=8, - sigmascalingprofile='quadratic', - sigmascalingdirection='forward', - sigmamin=0, - sigmamax=2.75 / (150 * np.pi * dl))]}, - 'MRIPML-1': {'pml_type': gprMax.PMLFormulation(pml='MRIPML'), - # Parameters from Antonis' MATLAB script (M3Dparams.m) - 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='constant', - alphascalingdirection='forward', - alphamin=0.05, alphamax=0.05, - kappascalingprofile='quartic', - kappascalingdirection='forward', - kappamin=1, kappamax=8, - sigmascalingprofile='quartic', - sigmascalingdirection='forward', - sigmamin=0, - sigmamax=1.1 * ((4 + 1) / (150 * np.pi * dl)))]}, - 'MRIPML-2': {'pml_type': gprMax.PMLFormulation(pml='MRIPML'), - # Parameters from http://dx.doi.org/10.1109/TAP.2018.2823864 - 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='quadratic', - alphascalingdirection='reverse', - alphamin=0, alphamax=0.15, - kappascalingprofile='quartic', - kappascalingdirection='forward', - kappamin=1, kappamax=12, - sigmascalingprofile='quartic', - sigmascalingdirection='forward', - sigmamin=0, - sigmamax=0.65 * ((4 + 1) / (150 * np.pi * dl))), - gprMax.PMLCFS(alphascalingprofile='linear', - alphascalingdirection='reverse', - alphamin=0.07, alphamax=0.8, - kappascalingprofile='constant', - kappascalingdirection='forward', - kappamin=0, kappamax=0, - sigmascalingprofile='quadratic', - sigmascalingdirection='forward', - sigmamin=0, - sigmamax=0.65 * ((2 + 1) / (150 * np.pi * dl)))]} + 'HORIPML-1': {'pml': gprMax.PMLProps(formulation='HORIPML', thickness=10), + # Parameters from http://dx.doi.org/10.1109/TAP.2011.2180344 + 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='constant', + alphascalingdirection='forward', + alphamin=0, alphamax=0, + kappascalingprofile='quartic', + kappascalingdirection='forward', + kappamin=1, kappamax=12, + sigmascalingprofile='quartic', + sigmascalingdirection='forward', + sigmamin=0, + sigmamax=0.7 * ((4 + 1) / (150 * np.pi * dl)))]}, + 'HORIPML-2': {'pml': gprMax.PMLProps(formulation='HORIPML', thickness=10), + # Parameters from http://dx.doi.org/10.1109/TAP.2018.2823864 + 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='constant', + alphascalingdirection='forward', + alphamin=0, alphamax=0, + kappascalingprofile='constant', + kappascalingdirection='forward', + kappamin=1, kappamax=1, + sigmascalingprofile='sextic', + sigmascalingdirection='forward', + sigmamin=0, + sigmamax=0.275 / (150 * np.pi * dl)), + gprMax.PMLCFS(alphascalingprofile='sextic', + alphascalingdirection='forward', + alphamin=0.07, alphamax=0.07 + (0.275 / (150 * np.pi * dl)), + kappascalingprofile='cubic', + kappascalingdirection='forward', + kappamin=1, kappamax=8, + sigmascalingprofile='quadratic', + sigmascalingdirection='forward', + sigmamin=0, + sigmamax=2.75 / (150 * np.pi * dl))]}, + 'MRIPML-1': {'pml': gprMax.PMLProps(formulation='MRIPML', thickness=10), + # Parameters from Antonis' MATLAB script (M3Dparams.m) + 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='constant', + alphascalingdirection='forward', + alphamin=0.05, alphamax=0.05, + kappascalingprofile='quartic', + kappascalingdirection='forward', + kappamin=1, kappamax=8, + sigmascalingprofile='quartic', + sigmascalingdirection='forward', + sigmamin=0, + sigmamax=1.1 * ((4 + 1) / (150 * np.pi * dl)))]}, + 'MRIPML-2': {'pml': gprMax.PMLProps(formulation='MRIPML', thickness=10), + # Parameters from http://dx.doi.org/10.1109/TAP.2018.2823864 + 'pml_cfs': [gprMax.PMLCFS(alphascalingprofile='quadratic', + alphascalingdirection='reverse', + alphamin=0, alphamax=0.15, + kappascalingprofile='quartic', + kappascalingdirection='forward', + kappamin=1, kappamax=12, + sigmascalingprofile='quartic', + sigmascalingdirection='forward', + sigmamin=0, + sigmamax=0.65 * ((4 + 1) / (150 * np.pi * dl))), + gprMax.PMLCFS(alphascalingprofile='linear', + alphascalingdirection='reverse', + alphamin=0.07, alphamax=0.8, + kappascalingprofile='constant', + kappascalingdirection='forward', + kappamin=0, kappamax=0, + sigmascalingprofile='quadratic', + sigmascalingdirection='forward', + sigmamin=0, + sigmamax=0.65 * ((2 + 1) / (150 * np.pi * dl)))]} } scenes = [] @@ -131,9 +131,7 @@ for k, v in pmls.items(): # scene.add(gv1) # scene.add(gv2) - pml_cells = gprMax.PMLCells(thickness=10) - scene.add(pml_cells) - scene.add(v['pml_type']) + scene.add(v['pml']) for pml_cfs in v['pml_cfs']: scene.add(pml_cfs) diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate1.h5 b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate1.h5 index 0c175d7a..dd25f9c3 100644 Binary files a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate1.h5 and b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate1.h5 differ diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate2.h5 b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate2.h5 index a1a7ec16..8e3c3003 100644 Binary files a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate2.h5 and b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate2.h5 differ diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate3.h5 b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate3.h5 index 4428abda..8f490728 100644 Binary files a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate3.h5 and b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate3.h5 differ diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate4.h5 b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate4.h5 index 010c0418..445c6f2a 100644 Binary files a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate4.h5 and b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate4.h5 differ diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate5.h5 b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate5.h5 index 993966ab..2a6a40df 100644 Binary files a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate5.h5 and b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate5.h5 differ diff --git a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py index 8cc1f388..1b0c8d85 100755 --- a/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py +++ b/testing/models_pmls/pml_3D_pec_plate/pml_3D_pec_plate_ref.py @@ -34,8 +34,7 @@ gv1 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), gv2 = gprMax.GeometryView(p1=(0, 0, 0), p2=(x, y, z), dl=(dl, dl, dl), filename=Path(*parts[:-1], parts[-1] + '_f'), output_type='f') -pml_type = gprMax.PMLFormulation(pml='HORIPML') -pml_cells = gprMax.PMLCells(thickness=10) +pml = gprMax.PMLProps(formulation='HORIPML', thickness=10) # Parameters from http://dx.doi.org/10.1109/TAP.2018.2823864 pml_cfs = gprMax.PMLCFS(alphascalingprofile='constant', @@ -62,8 +61,7 @@ scene.add(rx) # scene.add(gv1) # scene.add(gv2) -scene.add(pml_cells) -scene.add(pml_type) +scene.add(pml) scene.add(pml_cfs) # Run model diff --git a/testing/models_pmls/pml_basic.py b/testing/models_pmls/pml_basic.py index 4d11d7a9..3a71eb85 100755 --- a/testing/models_pmls/pml_basic.py +++ b/testing/models_pmls/pml_basic.py @@ -34,7 +34,7 @@ cases = {'off': {'x0': 0, 'y0': 0, 'z0': 0, 'xmax': 0, 'ymax': 0, 'zmax':0}, 'zmax': {'x0': 0, 'y0': 0, 'z0': 0, 'xmax': 0, 'ymax': 0, 'zmax': thick}} # PML formulation -pml_type = gprMax.PMLFormulation(pml='HORIPML') +pml_type = gprMax.PMLProps(formulation='HORIPML') ## Built-in 1st order PML pml_cfs = gprMax.PMLCFS(alphascalingprofile='constant', @@ -102,9 +102,8 @@ for k, v in cases.items(): scene.add(hertzian_dipole) scene.add(rx) - pml_cells = gprMax.PMLCells(**v) - scene.add(pml_cells) - scene.add(pml_type) + pml = gprMax.PMLProps(formulation='HORIPML', **v) + scene.add(pml) scene.add(pml_cfs) scenes.append(scene)