From fdf8489bd1b7828874ae4c249b7f17e55ce611fc Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Sat, 19 Nov 2022 15:46:16 +0000 Subject: [PATCH] Updated to account for changed PML cmd syntax --- .../pml_3D_pec_plate/pml_3D_pec_plate.py | 142 +++++++++--------- .../pml_3D_pec_plate/pml_3D_pec_plate1.h5 | Bin 113112 -> 113032 bytes .../pml_3D_pec_plate/pml_3D_pec_plate2.h5 | Bin 113112 -> 113032 bytes .../pml_3D_pec_plate/pml_3D_pec_plate3.h5 | Bin 113112 -> 113032 bytes .../pml_3D_pec_plate/pml_3D_pec_plate4.h5 | Bin 113112 -> 113032 bytes .../pml_3D_pec_plate/pml_3D_pec_plate5.h5 | Bin 113112 -> 113032 bytes .../pml_3D_pec_plate/pml_3D_pec_plate_ref.py | 6 +- testing/models_pmls/pml_basic.py | 7 +- 8 files changed, 75 insertions(+), 80 deletions(-) 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 0c175d7a4c0c1c950a1a07bf92c462e56281cd87..dd25f9c3c8485e4d8105452fa2c6f874d2306f45 100644 GIT binary patch delta 601 zcmccdnXTh9+XM~9j)|I<@;nTT3=9ksKnwx`KnMZ~%wUQ^Vq@cOCPs$Iw#@E8vK368 zWwr;hd0FCtWG+iOki5zQ5)oxJ2a>*EvXvDi`;;|!as-f5|gR-ciV0cr~m zLjur!y=vZ*8{{P>NhmO`*nCl5oQZM5a*UG|m^nldLJ%oP7`du};-yzDc~W*3^9gl^&1>^l zvusw-Sz*hxLv7+lIW9UaSF DUM_BB delta 590 zcmeD9%y#25+XM~98xu7x<#`zx85kHOfEWY>fDi-}n86f-#m2_nOpGj(ZJFJHWGk3F z%WMy1^RmPP$y}CnAbFJqBqGXc4kUfSWGgF3_9<)dbb~k`!VD2?sOn%|Z`fQYrOqt*15G+Z8lqfb^F~>HMqUM|Ej$bk3@nqU zvOBZ#FeCt3Z{?DKAto?!qv#|F1;z)P3+2U`7(YzzRE!7lcWgFP0`fa1d#dD19zb)b zhZ4kwjLjES)EPzLTos5g#3o)fQ24)<^PapwO#*7u zLw({#IW9;P0<~uYd6N%haxe-^{+KDxr2sLJK_M3;E|A5+XfW9^OPUv-ugBA~tW9$>w8Z`tb!!GtV$%+$@{T%gAI=(HxV%Jtm(~#|r>;%W|&( 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 a1a7ec1657e459ab40fbc48a5116afefc4f387c9..8e3c3003021af443cb167da6df84d6529e27b8f3 100644 GIT binary patch delta 601 zcmccdnXTh9+XM~9j)|I<@;nTT3=9ksKnwx`KnMZ~%wUQ^Vq@cOCPs$Iw#@E8vK368 zWwr;hd0FCtWG+iOki5zQ5)oxJ2a>*EvXvDi`;;|!as-f5|gR-ciV0cr~m zLjur!y=vZ*8{{P>NhmO`*nCl5oQZM5a*UG|m^nldLJ%oP7`du};-yzDc~W*3^9gl^&1>^l zvusw-Sz*hxLv7+lIW9UaSF DUM_BB delta 590 zcmeD9%y#25+XM~98xu7x<#`zx85kHOfEWY>fDi-}n86f-#m2_nOpGj(ZJFJHWGk3F z%WMy1^RmPP$y}CnAbFJqBqGXc4kUfSWGgF3_9<)dbb~k`!VD2?sOn%|Z`fQYrOqt*15G+Z8lqfb^F~>HMqUM|Ej$bk3@nqU zvOBZ#FeCt3Z{?DKAto?!qv#|F1;z)P3+2U`7(YzzRE!7lcWgFP0`fa1d#dD19zb)b zhZ4kwjLjES)EPzLTos5g#3o)fQ24)<^PapwO#*7u zLw({#IW9;P0<~uYd6N%haxe-^{+KDxr2sLJK_M3;E|A5+XfW9^OPUv-ugBA~tW9$>w8Z`tb!!GtV$%+$@{T%gAI=(HxV%Jtm(~#|r>;%W|&( 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 4428abda09dbe18bbd6476deec227c1b07edc03d..8f4907284a518eb514a19879ddf400f0cfa6eeaf 100644 GIT binary patch delta 601 zcmccdnXTh9+XM~9j)|I<@;nTT3=9ksKnwx`KnMZ~%wUQ^Vq@cOCPs$Iw#@E8vK368 zWwr;hd0FCtWG+iOki5zQ5)oxJ2a>*EvXvDi`;;|!as-f5|gR-ciV0cr~m zLjur!y=vZ*8{{P>NhmO`*nCl5oQZM5a*UG|m^nldLJ%oP7`du};-yzDc~W*3^9gl^&1>^l zvusw-Sz*hxLv7+lIW9UaSF DUM_BB delta 590 zcmeD9%y#25+XM~98xu7x<#`zx85kHOfEWY>fDi-}n86f-#m2_nOpGj(ZJFJHWGk3F z%WMy1^RmPP$y}CnAbFJqBqGXc4kUfSWGgF3_9<)dbb~k`!VD2?sOn%|Z`fQYrOqt*15G+Z8lqfb^F~>HMqUM|Ej$bk3@nqU zvOBZ#FeCt3Z{?DKAto?!qv#|F1;z)P3+2U`7(YzzRE!7lcWgFP0`fa1d#dD19zb)b zhZ4kwjLjES)EPzLTos5g#3o)fQ24)<^PapwO#*7u zLw({#IW9;P0<~uYd6N%haxe-^{+KDxr2sLJK_M3;E|A5+XfW9^OPUv-ugBA~tW9$>w8Z`tb!!GtV$%+$@{T%gAI=(HxV%Jtm(~#|r>;%W|&( 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 010c0418dd3f53585445a96d18f1671deb7ca6be..445c6f2ad1b512cf9ca5615393679b14e4a1f563 100644 GIT binary patch delta 601 zcmccdnXTh9+XM~9j)|I<@;nTT3=9ksKnwx`KnMZ~%wUQ^Vq@cOCPs$Iw#@E8vK368 zWwr;hd0FCtWG+iOki5zQ5)oxJ2a>*EvXvDi`;;|!as-f5|gR-ciV0cr~m zLjur!y=vZ*8{{P>NhmO`*nCl5oQZM5a*UG|m^nldLJ%oP7`du};-yzDc~W*3^9gl^&1>^l zvusw-Sz*hxLv7+lIW9UaSF DUM_BB delta 590 zcmeD9%y#25+XM~98xu7x<#`zx85kHOfEWY>fDi-}n86f-#m2_nOpGj(ZJFJHWGk3F z%WMy1^RmPP$y}CnAbFJqBqGXc4kUfSWGgF3_9<)dbb~k`!VD2?sOn%|Z`fQYrOqt*15G+Z8lqfb^F~>HMqUM|Ej$bk3@nqU zvOBZ#FeCt3Z{?DKAto?!qv#|F1;z)P3+2U`7(YzzRE!7lcWgFP0`fa1d#dD19zb)b zhZ4kwjLjES)EPzLTos5g#3o)fQ24)<^PapwO#*7u zLw({#IW9;P0<~uYd6N%haxe-^{+KDxr2sLJK_M3;E|A5+XfW9^OPUv-ugBA~tW9$>w8Z`tb!!GtV$%+$@{T%gAI=(HxV%Jtm(~#|r>;%W|&( 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 993966ab39fd213b63e782c3d0d16da1b0ef1d89..2a6a40df74273e1bb962a6e14082a98734d900b2 100644 GIT binary patch delta 601 zcmccdnXTh9+XM~9j)|I<@;nTT3=9ksKnwx`KnMZ~%wUQ^Vq@cOCPs$Iw#@E8vK368 zWwr;hd0FCtWG+iOki5zQ5)oxJ2a>*EvXvDi`;;|!as-f5|gR-ciV0cr~m zLjur!y=vZ*8{{P>NhmO`*nCl5oQZM5a*UG|m^nldLJ%oP7`du};-yzDc~W*3^9gl^&1>^l zvusw-Sz*hxLv7+lIW9UaSF DUM_BB delta 590 zcmeD9%y#25+XM~98xu7x<#`zx85kHOfEWY>fDi-}n86f-#m2_nOpGj(ZJFJHWGk3F z%WMy1^RmPP$y}CnAbFJqBqGXc4kUfSWGgF3_9<)dbb~k`!VD2?sOn%|Z`fQYrOqt*15G+Z8lqfb^F~>HMqUM|Ej$bk3@nqU zvOBZ#FeCt3Z{?DKAto?!qv#|F1;z)P3+2U`7(YzzRE!7lcWgFP0`fa1d#dD19zb)b zhZ4kwjLjES)EPzLTos5g#3o)fQ24)<^PapwO#*7u zLw({#IW9;P0<~uYd6N%haxe-^{+KDxr2sLJK_M3;E|A5+XfW9^OPUv-ugBA~tW9$>w8Z`tb!!GtV$%+$@{T%gAI=(HxV%Jtm(~#|r>;%W|&( 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)