From e6e7970dc05bf5c1e5a268ae70b6438e8f223f18 Mon Sep 17 00:00:00 2001 From: Luis Manuel Diaz Angulo Date: Sun, 26 Jan 2025 07:40:35 +0100 Subject: [PATCH 1/8] Deactivates debug run in windows because (slow) --- .github/workflows/windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index dd9e2013..12d64a74 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -19,7 +19,7 @@ jobs: matrix: os: [windows-latest] compiler: [ {name: 'intel', version: '2024.0'} ] - build-type: ["Debug", "Release"] + build-type: ["Release"] mpi: ["No"] mtln: ["Yes"] hdf: ["Yes"] From 03d83d0fcb5e22a5c70e01cebde1d095dd1178d0 Mon Sep 17 00:00:00 2001 From: Luis Manuel Diaz Angulo Date: Sun, 26 Jan 2025 07:49:02 +0100 Subject: [PATCH 2/8] Updates readme --- README.md | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 064b0b0a..adbaaf6e 100755 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) -[![ubuntu-gnu](https://github.com/OpenSEMBA/fdtd/actions/workflows/ubuntu-gnu.yml/badge.svg)](https://github.com/OpenSEMBA/fdtd/actions/workflows/ubuntu-gnu.yml) -[![ubuntu-intelLLVM](https://github.com/OpenSEMBA/fdtd/actions/workflows/ubuntu-intelLLVM.yml/badge.svg)](https://github.com/OpenSEMBA/fdtd/actions/workflows/ubuntu-intelLLVM.yml) -[![windows-intelLLVM](https://github.com/OpenSEMBA/fdtd/actions/workflows/windows-intelLLVM.yml/badge.svg)](https://github.com/OpenSEMBA/fdtd/actions/workflows/windows-intelLLVM.yml) +[![ubuntu](https://github.com/OpenSEMBA/fdtd/actions/workflows/ubuntu.yml/badge.svg?branch=main)](https://github.com/OpenSEMBA/fdtd/actions/workflows/ubuntu.yml) +[![windows](https://github.com/OpenSEMBA/fdtd/actions/workflows/windows.yml/badge.svg?branch=main)](https://github.com/OpenSEMBA/fdtd/actions/workflows/windows.yml) # semba-fdtd @@ -31,8 +30,8 @@ In a nutshell, semba-fdtd capabilities are + Multiple planewaves illumination for reverberation chamber modeling. + Hertzian dipole sources. + Equivalent Huygens surfaces. -+ Low frequency thin composites and lossy surfaces. -+ Thin slots. ++ [Low frequency thin composites and lossy surfaces.](https://doi.org/10.1109/TMTT.2016.2637348) ++ [Thin slots.](https://doi.org/10.1109/TAP.2024.3484673) + Time, frequency and transfer function probes. + Near-to-far field transformation. @@ -53,13 +52,7 @@ Tests must be run from the root folder. `python` wrapper test assumes that `semb This code is licensed under the terms of the [MIT License](LICENSE). All rights reserved by the University of Granada (Spain) -# References +# Funding -+ Miguel Ruiz Cabello, Maksims Abalenkovs, Luis Diaz Angulo, Clemente Cobos Sanchez, Franco Moglie, Salvador Gonzalez Garcia, *Performance of parallel FDTD method for shared- and distributed-memory architectures: Application to bioelectromagnetics*. PLOS ONE. 2020. https://doi.org/10.1371/journal.pone.0238115 -+ Luis Diaz Angulo, Miguel Ruiz Cabello, Jesus Alvarez, Amelia Rubio Bretones, Salvador Gonzalez Garcia, *From Microscopic to Macroscopic Description of Composite Thin Panels: A Road Map for Their Simulation in Time Domain*. IEEE Transactions on Microwave Theory and Techniques. 2018. https://doi.org/10.1109/TMTT.2017.2786263. -+ Miguel Ruiz Cabello, Luis Diaz Angulo, Jesus Alvarez, Ian Flintoft, Samuel Bourke, John Dawson, *A Hybrid Crank–Nicolson FDTD Subgridding Boundary Condition for Lossy Thin-Layer Modeling*. IEEE Transactions on Microwave Theory and Techniques. 2017. https://doi.org/10.1109/TMTT.2016.2637348. -+ Miguel Ruiz Cabello, Luis Diaz Angulo, Amelia Rubio Bretones, Rafael Gomez Martin, Salvador Gonzalez Garcia and Jesus Alvarez, *A novel subgriding scheme for arbitrarily dispersive thin-layer modeling*, 2017 IEEE MTT-S International Conference on Numerical Electromagnetic and Multiphysics Modeling and Optimization for RF, Microwave, and Terahertz Applications (NEMO), Seville, Spain, 2017. -https://doi.org/10.1109/NEMO.2017.7964255. -+ Guadalupe Gutierrez Gutierrez, Daniel Mateos Romero, Miguel Ruiz Cabello, Enrique Pascual-Gil, Luis Diaz Angulo, David Garcia Gomez, Salvador Gonzalez Garcia, -*On the Design of Aircraft Electrical Structure Networks*, -IEEE Transactions on Electromagnetic Compatibility. 2016. https://doi.org/10.1109/TEMC.2016.2514379. +- Spanish Ministry of Science and Innovation (MICIN/AEI) (Grant Number: PID2022-137495OB-C31) +- European Union, HECATE project. (HE-HORIZON-JU-Clean-Aviation-2022-01) \ No newline at end of file From 54c949cea81c774851c2c12b8d1de5ad0684c0af Mon Sep 17 00:00:00 2001 From: Luis Manuel Diaz Angulo Date: Sun, 26 Jan 2025 09:07:43 +0100 Subject: [PATCH 3/8] Removes MIT License notice --- src_main_pub/EpsMuTimeScale.F90 | 24 +------ src_main_pub/anisotropic.F90 | 24 +------ src_main_pub/borderscpml.F90 | 24 +------ src_main_pub/bordersmur.F90 | 24 +------ src_main_pub/bordersother.F90 | 24 +------ src_main_pub/calc_constants.F90 | 24 +------ src_main_pub/dmma_thin_slot.F90 | 24 +------ src_main_pub/electricdispersive.F90 | 24 +------ src_main_pub/errorreport.F90 | 24 +------ src_main_pub/farfield.F90 | 24 +------ src_main_pub/fdetypes.F90 | 24 +------ src_main_pub/getargs.F90 | 24 +------ src_main_pub/healer.F90 | 24 +------ src_main_pub/lumped.F90 | 24 +------ src_main_pub/lumped_types.F90 | 24 +------ src_main_pub/magneticdispersive.F90 | 24 +------ src_main_pub/maloney_nostoch.F90 | 24 +------ src_main_pub/mpicomm.F90 | 24 +------ src_main_pub/nfde_types.F90 | 24 +------ src_main_pub/nodalsources.F90 | 24 +------ src_main_pub/observation.F90 | 23 ------ src_main_pub/planewaves.F90 | 24 +------ src_main_pub/pml_bodies.F90 | 24 +------ src_main_pub/postprocess.F90 | 24 +------ src_main_pub/preprocess_geom.F90 | 24 +------ src_main_pub/resuming.F90 | 24 +------ src_main_pub/semba_fdtd.F90 | 106 ++++++---------------------- src_main_pub/storegeom.F90 | 24 +------ src_main_pub/timestepping.F90 | 41 ----------- src_wires_pub/wires.F90 | 24 ------- src_wires_pub/wires_types.F90 | 24 +------ 31 files changed, 50 insertions(+), 792 deletions(-) diff --git a/src_main_pub/EpsMuTimeScale.F90 b/src_main_pub/EpsMuTimeScale.F90 index 36d277ef..0be168fe 100755 --- a/src_main_pub/EpsMuTimeScale.F90 +++ b/src_main_pub/EpsMuTimeScale.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !//===========================================================================// !// HYSTORY & VERSION: // diff --git a/src_main_pub/anisotropic.F90 b/src_main_pub/anisotropic.F90 index cd980a45..ec5da913 100755 --- a/src_main_pub/anisotropic.F90 +++ b/src_main_pub/anisotropic.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module Anisotropic diff --git a/src_main_pub/borderscpml.F90 b/src_main_pub/borderscpml.F90 index 441a7b63..09d95ee4 100755 --- a/src_main_pub/borderscpml.F90 +++ b/src_main_pub/borderscpml.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Borders : PML handling diff --git a/src_main_pub/bordersmur.F90 b/src_main_pub/bordersmur.F90 index b37b9b60..bb8c389b 100755 --- a/src_main_pub/bordersmur.F90 +++ b/src_main_pub/bordersmur.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Borders : MUR handling diff --git a/src_main_pub/bordersother.F90 b/src_main_pub/bordersother.F90 index c5ecc5e1..2c23819c 100755 --- a/src_main_pub/bordersother.F90 +++ b/src_main_pub/bordersother.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Borders : PML, PEC, PMC, Periodic handling. diff --git a/src_main_pub/calc_constants.F90 b/src_main_pub/calc_constants.F90 index 3f0b7db1..c50a94f1 100755 --- a/src_main_pub/calc_constants.F90 +++ b/src_main_pub/calc_constants.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Creation date Date : October, 24, 2018 diff --git a/src_main_pub/dmma_thin_slot.F90 b/src_main_pub/dmma_thin_slot.F90 index 7e32b73c..8e8c50f2 100755 --- a/src_main_pub/dmma_thin_slot.F90 +++ b/src_main_pub/dmma_thin_slot.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + MODULE DMMA USE FDETYPES diff --git a/src_main_pub/electricdispersive.F90 b/src_main_pub/electricdispersive.F90 index 5b6a907d..313de333 100755 --- a/src_main_pub/electricdispersive.F90 +++ b/src_main_pub/electricdispersive.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module EDispersives !ojo los polos conjugados DEBEN APARECER explicitamente 20JUNE'12 diff --git a/src_main_pub/errorreport.F90 b/src_main_pub/errorreport.F90 index 6e90a940..d019eb90 100755 --- a/src_main_pub/errorreport.F90 +++ b/src_main_pub/errorreport.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + Module Report use FDETYPES diff --git a/src_main_pub/farfield.F90 b/src_main_pub/farfield.F90 index 9c4c9422..b0d89294 100755 --- a/src_main_pub/farfield.F90 +++ b/src_main_pub/farfield.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Current on Huygens Box diff --git a/src_main_pub/fdetypes.F90 b/src_main_pub/fdetypes.F90 index fa4e9e0d..8c1677a0 100755 --- a/src_main_pub/fdetypes.F90 +++ b/src_main_pub/fdetypes.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! This module contains the types and parameters shared by all the rest of the modules diff --git a/src_main_pub/getargs.F90 b/src_main_pub/getargs.F90 index 62253a3c..79f868a9 100755 --- a/src_main_pub/getargs.F90 +++ b/src_main_pub/getargs.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + Module Getargs USE NFDETYPES , ONLY: BUFSIZE diff --git a/src_main_pub/healer.F90 b/src_main_pub/healer.F90 index 84d7301b..410acf91 100755 --- a/src_main_pub/healer.F90 +++ b/src_main_pub/healer.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Module : CreateMatrices : Fills in the media and observation matrices, creates diff --git a/src_main_pub/lumped.F90 b/src_main_pub/lumped.F90 index 4108c411..babc60c4 100755 --- a/src_main_pub/lumped.F90 +++ b/src_main_pub/lumped.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module Lumped diff --git a/src_main_pub/lumped_types.F90 b/src_main_pub/lumped_types.F90 index eaadb263..fe07d3c2 100755 --- a/src_main_pub/lumped_types.F90 +++ b/src_main_pub/lumped_types.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + module lumped_vars !structures needed by the Lumped diff --git a/src_main_pub/magneticdispersive.F90 b/src_main_pub/magneticdispersive.F90 index cdb3a0fd..233d7c6b 100755 --- a/src_main_pub/magneticdispersive.F90 +++ b/src_main_pub/magneticdispersive.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module Mdispersives !ojo los polos conjugados DEBEN APARECER Hxplicitamente 20JUNE'12 diff --git a/src_main_pub/maloney_nostoch.F90 b/src_main_pub/maloney_nostoch.F90 index 146e95d2..cc37d6a1 100755 --- a/src_main_pub/maloney_nostoch.F90 +++ b/src_main_pub/maloney_nostoch.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module SGBCs diff --git a/src_main_pub/mpicomm.F90 b/src_main_pub/mpicomm.F90 index f749c4fb..382cf93f 100755 --- a/src_main_pub/mpicomm.F90 +++ b/src_main_pub/mpicomm.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module to handle the MPI part of a problem diff --git a/src_main_pub/nfde_types.F90 b/src_main_pub/nfde_types.F90 index d72d9920..b0d8d28b 100755 --- a/src_main_pub/nfde_types.F90 +++ b/src_main_pub/nfde_types.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + MODULE NFDETypes ! diff --git a/src_main_pub/nodalsources.F90 b/src_main_pub/nodalsources.F90 index ed729f9d..7cdd7a49 100755 --- a/src_main_pub/nodalsources.F90 +++ b/src_main_pub/nodalsources.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Nodal Feeding modules diff --git a/src_main_pub/observation.F90 b/src_main_pub/observation.F90 index 97c0350d..ce88bd2b 100755 --- a/src_main_pub/observation.F90 +++ b/src_main_pub/observation.F90 @@ -1,26 +1,3 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Observation module to store the observed data diff --git a/src_main_pub/planewaves.F90 b/src_main_pub/planewaves.F90 index d2696588..63adb6b7 100755 --- a/src_main_pub/planewaves.F90 +++ b/src_main_pub/planewaves.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Plane Wave Feeding modules diff --git a/src_main_pub/pml_bodies.F90 b/src_main_pub/pml_bodies.F90 index 61815034..fcc0c7f6 100755 --- a/src_main_pub/pml_bodies.F90 +++ b/src_main_pub/pml_bodies.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module PMLbodies diff --git a/src_main_pub/postprocess.F90 b/src_main_pub/postprocess.F90 index f282735a..8532cc37 100755 --- a/src_main_pub/postprocess.F90 +++ b/src_main_pub/postprocess.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + module PostProcessing diff --git a/src_main_pub/preprocess_geom.F90 b/src_main_pub/preprocess_geom.F90 index 1bec8d9b..9c756352 100644 --- a/src_main_pub/preprocess_geom.F90 +++ b/src_main_pub/preprocess_geom.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! This module defines a class to deal with the transfering information diff --git a/src_main_pub/resuming.F90 b/src_main_pub/resuming.F90 index db831128..63edd3bb 100755 --- a/src_main_pub/resuming.F90 +++ b/src_main_pub/resuming.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module to handle the resuming of a problem diff --git a/src_main_pub/semba_fdtd.F90 b/src_main_pub/semba_fdtd.F90 index c43f4586..644637d2 100755 --- a/src_main_pub/semba_fdtd.F90 +++ b/src_main_pub/semba_fdtd.F90 @@ -1,36 +1,3 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! SEMBA_FDTD LAUNCHER MODULE -! Creation date Date : April, 8, 2010 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! in Unix Systems checkt that ulimit -n gives high numbers (more than 2e6 files may be open at the same time!!!) -! in Ubuntu this is in /etc/security/limits.conf -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - PROGRAM SEMBA_FDTD_launcher USE version @@ -38,7 +5,7 @@ PROGRAM SEMBA_FDTD_launcher USE Getargs ! USE fdetypes - USE Solver !!!el timestepping.F90 + USE Solver USE Resuming !nfde parser stuff USE NFDETypes @@ -169,28 +136,27 @@ PROGRAM SEMBA_FDTD_launcher !activate printing through screen CALL OnPrint !!!!!!!!!!!! -!!!!!!!!!!!!!!!!! call l%EpsMuTimeScale_input_parameters%init0() - + #ifdef CompileWithMPI CALL InitGeneralMPI (l%layoutnumber, l%size) SUBCOMM_MPI=MPI_COMM_WORLD !default el l%stochastic es el global a menos que luego se divida #else - l%size = 1 - l%layoutnumber = 0 + l%size = 1 + l%layoutnumber = 0 #endif - call setglobal(l%layoutnumber,l%size) !para crear variables globales con info MPI - - if (l%size.gt.maxcores) then - print *,'Maximum cores ',maxcores,' reached. to recompile' - stop - endif - - WRITE (whoamishort, '(i5)') l%layoutnumber + 1 - WRITE (whoami, '(a,i5,a,i5,a)') '(', l%layoutnumber + 1, '/', l%size, ') ' - + call setglobal(l%layoutnumber,l%size) !para crear variables globales con info MPI + + if (l%size.gt.maxcores) then + print *,'Maximum cores ',maxcores,' reached. to recompile' + stop + endif + + WRITE (whoamishort, '(i5)') l%layoutnumber + 1 + WRITE (whoami, '(a,i5,a,i5,a)') '(', l%layoutnumber + 1, '/', l%size, ') ' + #ifdef CompileWithMPI - call MPI_Barrier(SUBCOMM_MPI,l%ierr) + call MPI_Barrier(SUBCOMM_MPI,l%ierr) #endif call get_secnds(l%time_out2) time_desdelanzamiento= l%time_out2%segundos @@ -435,12 +401,6 @@ PROGRAM SEMBA_FDTD_launcher call NFDE2sgg l%fatalerror=l%fatalerror.or.l%fatalerrornfde2sgg !!!!!!!!!!!!!!!!!!!!! - !NOTE: md: necesito parser vivo hata el conformal ini, lo paso abajo - ! CALL Destroy_Parser (parser) - ! DEALLOCATE (NFDE_FILE%lineas) - ! DEALLOCATE (NFDE_FILE) - ! nullify (NFDE_FILE) - !!!!!!!!!!!!!!!!!!!!!!!!!!!!! #ifdef CompileWithMPI !wait until everything comes out CALL MPI_Barrier (SUBCOMM_MPI, l%ierr) @@ -452,14 +412,6 @@ PROGRAM SEMBA_FDTD_launcher if (allocated(sggMiEx)) deallocate (sggMiEx, sggMiEy, sggMiEz,sggMiHx, sggMiHy, sggMiHz,sggMiNo,sggMtag) CALL stoponerror (l%layoutnumber, l%size, 'Error in .nfde file syntax. Check all *Warnings* and *tmpWarnings* files, correct and remove pause file if any',.true.); goto 652 endif - !********************************************** - !INIT DXF OUTPUT - ! - !!!! CALL INITdxfFILE (l%layoutnumber, l%size, l%nEntradaRoot) - !************************************************ - ! - ! IF (l%createmap) CALL store_geomData (sgg,sggMiEx,sggMiEy,sggMiEz,sggMiHx,sggMiHy,sggMiHz, l%geomfile) - ! Se hace otra vez luego (sgg 220817) !************************************************************************* !***[conformal] ****************************************** @@ -494,8 +446,6 @@ PROGRAM SEMBA_FDTD_launcher if(conf_err/=0)then call WarnErrReport(Trim(buff),.true.) end if - !NOTE: md: lo necesito despues del conformal init (antes se borraba mas arriba) - !REVIEW: sgg #ifdef CompilePrivateVersion if (trim(adjustl(l%extension))=='.nfde') then @@ -510,11 +460,6 @@ PROGRAM SEMBA_FDTD_launcher #ifdef CompileWithMPI !wait until everything comes out CALL MPI_Barrier (SUBCOMM_MPI, l%ierr) -#endif - !tocado para reducir en MPI 1119 con sgg pa no se que demonios quiere - !l%input_conformal_flag = .True. ! lo fuerzo para evitar deadlocks tengo que revisarlo - !lo que sigue debe resolve los deadlocks 1119 sgg -#ifdef CompileWithMPI l_auxinput = l%input_conformal_flag call MPI_Barrier(SUBCOMM_MPI,l%ierr) call MPI_AllReduce( l_auxinput, l_auxoutput, 1_4, MPI_LOGICAL, MPI_LOR, MPI_COMM_WORLD, l%ierr) @@ -571,8 +516,6 @@ PROGRAM SEMBA_FDTD_launcher !************************************************************************* #endif - !310715 - if (allocated(sggMiEx)) then !para el l%skindepthpre no se allocatea nada #ifdef CompileWithConformal call AssigLossyOrPECtoNodes(sgg,sggMiNo,sggMiEx,sggMiEy,sggMiEz,& @@ -595,7 +538,6 @@ PROGRAM SEMBA_FDTD_launcher else l%finaltimestep = sgg%TimeSteps endif -!aniadido correcion timesteps finales si no hay l%forcesteps 250417 IF (.not.l%forcesteps) then finaltimestepantesdecorregir=l%finaltimestep l%finaltimestep=int(dtantesdecorregir/sgg%dt*finaltimestepantesdecorregir) @@ -613,7 +555,6 @@ PROGRAM SEMBA_FDTD_launcher if (l%layoutnumber==0) call print11(l%layoutnumber,dubuf) endif endif -!fin aniadido 250417 !check that simulation can actually be done for the kind of media requested DO i = 1, sgg%nummedia IF (sgg%Med(i)%Is%ThinWire) THEN @@ -659,15 +600,14 @@ PROGRAM SEMBA_FDTD_launcher endif -!punietero error abrezanjas y no l%resume conformal !niapa 121020 - ThereArethinslots=.FALSE. - do jmed=1,sgg%NumMedia - if (sgg%Med(jmed)%Is%ThinSlot) ThereArethinslots=.true. - end do - if (l%resume.and.l%run_with_abrezanjas.and.ThereArethinslots) then - CALL stoponerror (l%layoutnumber, l%size, 'l%resume -r currently unsupported by conformal solver',.true.); statuse=-1; !return - end if -!fin niapa + !Error abrezanjas y no l%resume conformal + ThereArethinslots=.FALSE. + do jmed=1,sgg%NumMedia + if (sgg%Med(jmed)%Is%ThinSlot) ThereArethinslots=.true. + end do + if (l%resume.and.l%run_with_abrezanjas.and.ThereArethinslots) then + CALL stoponerror (l%layoutnumber, l%size, 'l%resume -r currently unsupported by conformal solver',.true.); statuse=-1; !return + end if ! !!!SOME FINAL REPORTING diff --git a/src_main_pub/storegeom.F90 b/src_main_pub/storegeom.F90 index 3150a197..787905b9 100755 --- a/src_main_pub/storegeom.F90 +++ b/src_main_pub/storegeom.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module to handle the storing of the geometry in ascii files diff --git a/src_main_pub/timestepping.F90 b/src_main_pub/timestepping.F90 index 2fab00d2..7bdd89c2 100755 --- a/src_main_pub/timestepping.F90 +++ b/src_main_pub/timestepping.F90 @@ -1,44 +1,3 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! SEMBA_FDTD sOLVER MODULE -! Creation date Date : April, 8, 2010 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!__________________________________________________________________________________________________ -!******************************** REVISAR PARA PGI (CRAY) ***************************************** -!---> AdvanceMultiportE -!---> AdvanceAnisMultiportE -!---> AdvanceMultiportH -!---> AdvanceAnisMultiportH -!---> dfUpdateE -!---> dfUpdateH -!---> MinusCloneMagneticPMC -!________________________________________________________________________________________ - module Solver use fdetypes diff --git a/src_wires_pub/wires.F90 b/src_wires_pub/wires.F90 index cb203d98..3503c7b1 100755 --- a/src_wires_pub/wires.F90 +++ b/src_wires_pub/wires.F90 @@ -1,27 +1,3 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Module thin wires from Wires paper !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/src_wires_pub/wires_types.F90 b/src_wires_pub/wires_types.F90 index a19f13d6..2b0d5785 100755 --- a/src_wires_pub/wires_types.F90 +++ b/src_wires_pub/wires_types.F90 @@ -1,26 +1,4 @@ -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! MIT License -! -! Copyright (c) 2023 University of Granada -! -! Permission is hereby granted, free of charge, to any person obtaining a copy -! of this software and associated documentation files (the "Software"), to deal -! in the Software without restriction, including without limitation the rights -! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -! copies of the Software, and to permit persons to whom the Software is -! furnished to do so, subject to the following conditions: -! -! The above copyright notice and this permission notice shall be included in all -! copies or substantial portions of the Software. -! -! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -! SOFTWARE. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + module wiresHolland_constants use fdetypes From b04b6f29312a2cab4371ad8f0c90bb2c3ee110b7 Mon Sep 17 00:00:00 2001 From: Luis Manuel Diaz Angulo Date: Tue, 28 Jan 2025 10:20:08 +0100 Subject: [PATCH 4/8] Minor --- CMakeLists.txt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 28d35fcb..0e2e2894 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,7 @@ add_definitions( include("${CMAKE_CURRENT_SOURCE_DIR}/set_precompiled_libraries.cmake") if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-form -ffree-line-length-none -fdec -fcheck=bounds -fopenmp -fallow-argument-mismatch") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fopenmp -ffree-form -ffree-line-length-none -fdec -fcheck=bounds -fallow-argument-mismatch") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") add_definitions(-DCompileWithIncludeMpifh) endif() @@ -46,8 +46,10 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^Intel") if (CMAKE_SYSTEM_NAME MATCHES "Linux") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qopenmp") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -qopenmp") + if(CMAKE_BUILD_TYPE MATCHES "Debug") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -check all,nouninit -debug full -traceback") + endif() elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") - if(CMAKE_Fortran_COMPILER_ID MATCHES "IntelLLVM") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qiopenmp") else() @@ -60,9 +62,6 @@ if(CMAKE_Fortran_COMPILER_ID MATCHES "^Intel") else() message(FATAL_ERROR "Unrecognized system name") endif() - if(CMAKE_BUILD_TYPE MATCHES "Debug") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -check all,nouninit -debug full -traceback") - endif() endif() add_subdirectory(external) From c5ed581d0ccff1ebf8b07bb1e61ddd33ce1811d0 Mon Sep 17 00:00:00 2001 From: Luis Manuel Diaz Angulo Date: Wed, 29 Jan 2025 09:30:20 +0100 Subject: [PATCH 5/8] Adds airplane case --- testData/cases/airplane/airplane.fdtd.json | 7053 ++++++++++++++++++++ testData/cases/airplane/dummy.exc | 4 + 2 files changed, 7057 insertions(+) create mode 100644 testData/cases/airplane/airplane.fdtd.json create mode 100644 testData/cases/airplane/dummy.exc diff --git a/testData/cases/airplane/airplane.fdtd.json b/testData/cases/airplane/airplane.fdtd.json new file mode 100644 index 00000000..51d76a43 --- /dev/null +++ b/testData/cases/airplane/airplane.fdtd.json @@ -0,0 +1,7053 @@ +{ + "_format": "FDTD Input file", + "general": { + "timeStep": 1.2971876e-09, + "numberOfSteps": 2 + }, + "boundary": { + "all": { + "type": "mur" + } + }, + "mesh": { + "grid": { + "numberOfCells": [ + 50, + 50, + 50 + ], + "steps": { + "x": [ + 0.44 + ], + "y": [ + 0.46 + ], + "z": [ + 0.2 + ] + } + }, + "coordinates": [ + { + "id": 1, + "relativePosition": [ + 0.0, + 26.0, + 25.0 + ] + }, + { + "id": 2, + "relativePosition": [ + 0.0, + 26.0, + 24.0 + ] + }, + { + "id": 3, + "relativePosition": [ + 1.0, + 26.0, + 24.0 + ] + }, + { + "id": 4, + "relativePosition": [ + 1.0, + 26.0, + 23.0 + ] + }, + { + "id": 5, + "relativePosition": [ + 2.0, + 26.0, + 23.0 + ] + }, + { + "id": 6, + "relativePosition": [ + 2.0, + 26.0, + 22.0 + ] + }, + { + "id": 7, + "relativePosition": [ + 3.0, + 26.0, + 22.0 + ] + }, + { + "id": 8, + "relativePosition": [ + 3.0, + 26.0, + 21.0 + ] + }, + { + "id": 9, + "relativePosition": [ + 4.0, + 26.0, + 21.0 + ] + }, + { + "id": 10, + "relativePosition": [ + 4.0, + 26.0, + 20.0 + ] + }, + { + "id": 11, + "relativePosition": [ + 5.0, + 26.0, + 20.0 + ] + }, + { + "id": 12, + "relativePosition": [ + 5.0, + 26.0, + 19.0 + ] + }, + { + "id": 13, + "relativePosition": [ + 6.0, + 26.0, + 19.0 + ] + }, + { + "id": 14, + "relativePosition": [ + 6.0, + 26.0, + 18.0 + ] + }, + { + "id": 15, + "relativePosition": [ + 7.0, + 26.0, + 18.0 + ] + }, + { + "id": 16, + "relativePosition": [ + 7.0, + 26.0, + 17.0 + ] + }, + { + "id": 17, + "relativePosition": [ + 40.0, + 26.0, + 37.0 + ] + }, + { + "id": 18, + "relativePosition": [ + 40.0, + 26.0, + 34.0 + ] + }, + { + "id": 19, + "relativePosition": [ + 41.0, + 26.0, + 34.0 + ] + }, + { + "id": 20, + "relativePosition": [ + 41.0, + 26.0, + 32.0 + ] + }, + { + "id": 21, + "relativePosition": [ + 42.0, + 26.0, + 32.0 + ] + }, + { + "id": 22, + "relativePosition": [ + 42.0, + 26.0, + 29.0 + ] + }, + { + "id": 23, + "relativePosition": [ + 43.0, + 26.0, + 29.0 + ] + }, + { + "id": 24, + "relativePosition": [ + 43.0, + 26.0, + 27.0 + ] + }, + { + "id": 25, + "relativePosition": [ + 44.0, + 26.0, + 27.0 + ] + }, + { + "id": 26, + "relativePosition": [ + 44.0, + 26.0, + 24.0 + ] + }, + { + "id": 27, + "relativePosition": [ + 45.0, + 26.0, + 24.0 + ] + }, + { + "id": 28, + "relativePosition": [ + 45.0, + 26.0, + 22.0 + ] + }, + { + "id": 29, + "relativePosition": [ + 46.0, + 26.0, + 22.0 + ] + }, + { + "id": 30, + "relativePosition": [ + 46.0, + 26.0, + 19.0 + ] + }, + { + "id": 31, + "relativePosition": [ + 47.0, + 26.0, + 19.0 + ] + }, + { + "id": 32, + "relativePosition": [ + 47.0, + 26.0, + 16.0 + ] + }, + { + "id": 33, + "relativePosition": [ + 48.0, + 26.0, + 16.0 + ] + }, + { + "id": 34, + "relativePosition": [ + 48.0, + 26.0, + 14.0 + ] + }, + { + "id": 35, + "relativePosition": [ + 49.0, + 26.0, + 14.0 + ] + }, + { + "id": 36, + "relativePosition": [ + 49.0, + 26.0, + 11.0 + ] + }, + { + "id": 37, + "relativePosition": [ + 50.0, + 26.0, + 11.0 + ] + }, + { + "id": 38, + "relativePosition": [ + 50.0, + 26.0, + 10.0 + ] + } + ], + "elements": [ + { + "id": 1, + "type": "cell", + "intervals": [ + [ + [ + 0.0, + 26.0, + 25.0 + ], + [ + 0.0, + 26.0, + 24.0 + ] + ], + [ + [ + 0.0, + 26.0, + 24.0 + ], + [ + 1.0, + 26.0, + 24.0 + ] + ], + [ + [ + 1.0, + 26.0, + 24.0 + ], + [ + 1.0, + 26.0, + 23.0 + ] + ], + [ + [ + 1.0, + 26.0, + 23.0 + ], + [ + 2.0, + 26.0, + 23.0 + ] + ], + [ + [ + 2.0, + 26.0, + 23.0 + ], + [ + 2.0, + 26.0, + 22.0 + ] + ], + [ + [ + 2.0, + 26.0, + 22.0 + ], + [ + 3.0, + 26.0, + 22.0 + ] + ], + [ + [ + 3.0, + 26.0, + 22.0 + ], + [ + 3.0, + 26.0, + 21.0 + ] + ], + [ + [ + 3.0, + 26.0, + 21.0 + ], + [ + 4.0, + 26.0, + 21.0 + ] + ], + [ + [ + 4.0, + 26.0, + 21.0 + ], + [ + 4.0, + 26.0, + 20.0 + ] + ], + [ + [ + 4.0, + 26.0, + 20.0 + ], + [ + 5.0, + 26.0, + 20.0 + ] + ], + [ + [ + 5.0, + 26.0, + 20.0 + ], + [ + 5.0, + 26.0, + 19.0 + ] + ], + [ + [ + 5.0, + 26.0, + 19.0 + ], + [ + 6.0, + 26.0, + 19.0 + ] + ], + [ + [ + 6.0, + 26.0, + 19.0 + ], + [ + 6.0, + 26.0, + 18.0 + ] + ], + [ + [ + 6.0, + 26.0, + 18.0 + ], + [ + 7.0, + 26.0, + 18.0 + ] + ], + [ + [ + 7.0, + 26.0, + 18.0 + ], + [ + 7.0, + 26.0, + 17.0 + ] + ] + ] + }, + { + "id": 2, + "type": "cell", + "intervals": [ + [ + [ + 40, + 26, + 10 + ], + [ + 50, + 26, + 37 + ] + ] + ] + }, + { + "id": 3, + "type": "cell", + "intervals": [ + [ + [ + 13, + 26, + 23 + ], + [ + 12, + 26, + 23 + ] + ], + [ + [ + 12, + 26, + 23 + ], + [ + 12, + 26, + 22 + ] + ], + [ + [ + 12, + 26, + 22 + ], + [ + 11, + 26, + 22 + ] + ], + [ + [ + 39, + 26, + 37 + ], + [ + 40, + 26, + 37 + ] + ], + [ + [ + 7, + 26, + 17 + ], + [ + 7, + 27, + 18 + ] + ], + [ + [ + 8, + 25, + 16 + ], + [ + 8, + 26, + 19 + ] + ], + [ + [ + 8, + 26, + 18 + ], + [ + 8, + 27, + 19 + ] + ], + [ + [ + 8, + 26, + 16 + ], + [ + 8, + 27, + 17 + ] + ], + [ + [ + 9, + 25, + 19 + ], + [ + 9, + 26, + 20 + ] + ], + [ + [ + 20, + 9, + 25 + ], + [ + 21, + 9, + 26 + ] + ], + [ + [ + 19, + 9, + 25 + ], + [ + 20, + 9, + 26 + ] + ], + [ + [ + 9, + 26, + 19 + ], + [ + 9, + 27, + 20 + ] + ], + [ + [ + 10, + 24, + 18 + ], + [ + 10, + 25, + 19 + ] + ], + [ + [ + 10, + 25, + 20 + ], + [ + 10, + 26, + 21 + ] + ], + [ + [ + 10, + 26, + 20 + ], + [ + 10, + 27, + 21 + ] + ], + [ + [ + 10, + 27, + 17 + ], + [ + 10, + 28, + 20 + ] + ], + [ + [ + 11, + 25, + 21 + ], + [ + 11, + 26, + 22 + ] + ], + [ + [ + 11, + 24, + 17 + ], + [ + 11, + 25, + 18 + ] + ], + [ + [ + 11, + 24, + 19 + ], + [ + 11, + 25, + 20 + ] + ], + [ + [ + 11, + 27, + 16 + ], + [ + 11, + 28, + 17 + ] + ], + [ + [ + 11, + 26, + 21 + ], + [ + 11, + 27, + 22 + ] + ], + [ + [ + 11, + 27, + 20 + ], + [ + 11, + 28, + 21 + ] + ], + [ + [ + 21, + 12, + 25 + ], + [ + 22, + 12, + 26 + ] + ], + [ + [ + 13, + 25, + 23 + ], + [ + 13, + 26, + 24 + ] + ], + [ + [ + 13, + 24, + 22 + ], + [ + 13, + 25, + 23 + ] + ], + [ + [ + 13, + 24, + 16 + ], + [ + 13, + 25, + 17 + ] + ], + [ + [ + 13, + 26, + 23 + ], + [ + 13, + 27, + 24 + ] + ], + [ + [ + 18, + 14, + 25 + ], + [ + 19, + 14, + 26 + ] + ], + [ + [ + 14, + 27, + 23 + ], + [ + 14, + 28, + 24 + ] + ], + [ + [ + 15, + 25, + 24 + ], + [ + 15, + 26, + 25 + ] + ], + [ + [ + 15, + 21, + 21 + ], + [ + 15, + 22, + 24 + ] + ], + [ + [ + 15, + 20, + 23 + ], + [ + 15, + 21, + 24 + ] + ], + [ + [ + 17, + 24, + 15 + ], + [ + 22, + 26, + 15 + ] + ], + [ + [ + 15, + 30, + 23 + ], + [ + 15, + 31, + 24 + ] + ], + [ + [ + 15, + 31, + 21 + ], + [ + 15, + 32, + 24 + ] + ], + [ + [ + 15, + 26, + 24 + ], + [ + 15, + 27, + 25 + ] + ], + [ + [ + 21, + 15, + 25 + ], + [ + 22, + 15, + 26 + ] + ], + [ + [ + 17, + 26, + 15 + ], + [ + 22, + 28, + 15 + ] + ], + [ + [ + 19, + 28, + 15 + ], + [ + 22, + 29, + 15 + ] + ], + [ + [ + 22, + 27, + 15 + ], + [ + 23, + 28, + 15 + ] + ], + [ + [ + 16, + 20, + 22 + ], + [ + 16, + 21, + 23 + ] + ], + [ + [ + 16, + 21, + 24 + ], + [ + 16, + 22, + 25 + ] + ], + [ + [ + 22, + 24, + 16 + ], + [ + 25, + 26, + 16 + ] + ], + [ + [ + 8, + 25, + 16 + ], + [ + 11, + 26, + 16 + ] + ], + [ + [ + 20, + 23, + 16 + ], + [ + 22, + 24, + 16 + ] + ], + [ + [ + 16, + 24, + 16 + ], + [ + 17, + 26, + 16 + ] + ], + [ + [ + 19, + 23, + 16 + ], + [ + 20, + 24, + 16 + ] + ], + [ + [ + 17, + 23, + 16 + ], + [ + 19, + 24, + 16 + ] + ], + [ + [ + 25, + 25, + 16 + ], + [ + 27, + 26, + 16 + ] + ], + [ + [ + 11, + 25, + 16 + ], + [ + 14, + 26, + 16 + ] + ], + [ + [ + 13, + 24, + 16 + ], + [ + 14, + 25, + 16 + ] + ], + [ + [ + 14, + 24, + 16 + ], + [ + 16, + 26, + 16 + ] + ], + [ + [ + 16, + 31, + 24 + ], + [ + 16, + 32, + 25 + ] + ], + [ + [ + 16, + 30, + 22 + ], + [ + 16, + 31, + 23 + ] + ], + [ + [ + 25, + 26, + 16 + ], + [ + 27, + 27, + 16 + ] + ], + [ + [ + 25, + 27, + 16 + ], + [ + 26, + 28, + 16 + ] + ], + [ + [ + 22, + 26, + 16 + ], + [ + 25, + 27, + 16 + ] + ], + [ + [ + 23, + 27, + 16 + ], + [ + 25, + 28, + 16 + ] + ], + [ + [ + 18, + 28, + 16 + ], + [ + 19, + 29, + 16 + ] + ], + [ + [ + 17, + 28, + 16 + ], + [ + 18, + 29, + 16 + ] + ], + [ + [ + 16, + 26, + 16 + ], + [ + 17, + 28, + 16 + ] + ], + [ + [ + 8, + 26, + 16 + ], + [ + 14, + 27, + 16 + ] + ], + [ + [ + 11, + 27, + 16 + ], + [ + 14, + 28, + 16 + ] + ], + [ + [ + 14, + 26, + 16 + ], + [ + 16, + 28, + 16 + ] + ], + [ + [ + 17, + 23, + 17 + ], + [ + 17, + 24, + 18 + ] + ], + [ + [ + 17, + 23, + 16 + ], + [ + 17, + 24, + 17 + ] + ], + [ + [ + 17, + 24, + 15 + ], + [ + 17, + 26, + 16 + ] + ], + [ + [ + 17, + 24, + 24 + ], + [ + 17, + 25, + 25 + ] + ], + [ + [ + 17, + 20, + 21 + ], + [ + 17, + 21, + 22 + ] + ], + [ + [ + 17, + 20, + 24 + ], + [ + 17, + 21, + 25 + ] + ], + [ + [ + 19, + 17, + 24 + ], + [ + 20, + 17, + 25 + ] + ], + [ + [ + 21, + 28, + 17 + ], + [ + 22, + 29, + 17 + ] + ], + [ + [ + 27, + 25, + 17 + ], + [ + 28, + 26, + 17 + ] + ], + [ + [ + 25, + 24, + 17 + ], + [ + 26, + 25, + 17 + ] + ], + [ + [ + 28, + 25, + 17 + ], + [ + 29, + 26, + 17 + ] + ], + [ + [ + 12, + 24, + 17 + ], + [ + 13, + 25, + 17 + ] + ], + [ + [ + 11, + 24, + 17 + ], + [ + 12, + 25, + 17 + ] + ], + [ + [ + 17, + 27, + 24 + ], + [ + 17, + 28, + 25 + ] + ], + [ + [ + 17, + 28, + 17 + ], + [ + 17, + 29, + 18 + ] + ], + [ + [ + 17, + 28, + 16 + ], + [ + 17, + 29, + 17 + ] + ], + [ + [ + 17, + 26, + 15 + ], + [ + 17, + 28, + 16 + ] + ], + [ + [ + 17, + 30, + 21 + ], + [ + 17, + 31, + 22 + ] + ], + [ + [ + 27, + 26, + 17 + ], + [ + 28, + 27, + 17 + ] + ], + [ + [ + 28, + 26, + 17 + ], + [ + 29, + 27, + 17 + ] + ], + [ + [ + 7, + 26, + 17 + ], + [ + 8, + 27, + 17 + ] + ], + [ + [ + 10, + 27, + 17 + ], + [ + 11, + 28, + 17 + ] + ], + [ + [ + 20, + 23, + 17 + ], + [ + 22, + 24, + 17 + ] + ], + [ + [ + 26, + 27, + 17 + ], + [ + 27, + 28, + 17 + ] + ], + [ + [ + 18, + 28, + 15 + ], + [ + 18, + 29, + 16 + ] + ], + [ + [ + 18, + 30, + 21 + ], + [ + 18, + 31, + 22 + ] + ], + [ + [ + 18, + 14, + 25 + ], + [ + 18, + 25, + 26 + ] + ], + [ + [ + 18, + 19, + 24 + ], + [ + 18, + 20, + 25 + ] + ], + [ + [ + 18, + 22, + 24 + ], + [ + 18, + 24, + 25 + ] + ], + [ + [ + 18, + 18, + 24 + ], + [ + 18, + 19, + 25 + ] + ], + [ + [ + 18, + 24, + 23 + ], + [ + 18, + 25, + 24 + ] + ], + [ + [ + 18, + 25, + 25 + ], + [ + 18, + 26, + 26 + ] + ], + [ + [ + 20, + 18, + 24 + ], + [ + 21, + 18, + 25 + ] + ], + [ + [ + 18, + 18, + 24 + ], + [ + 19, + 18, + 25 + ] + ], + [ + [ + 17, + 28, + 18 + ], + [ + 21, + 29, + 18 + ] + ], + [ + [ + 7, + 26, + 18 + ], + [ + 8, + 27, + 18 + ] + ], + [ + [ + 10, + 24, + 18 + ], + [ + 11, + 25, + 18 + ] + ], + [ + [ + 29, + 25, + 18 + ], + [ + 30, + 26, + 18 + ] + ], + [ + [ + 18, + 30, + 24 + ], + [ + 18, + 33, + 25 + ] + ], + [ + [ + 18, + 31, + 25 + ], + [ + 18, + 39, + 26 + ] + ], + [ + [ + 18, + 28, + 24 + ], + [ + 18, + 30, + 25 + ] + ], + [ + [ + 18, + 28, + 25 + ], + [ + 18, + 31, + 26 + ] + ], + [ + [ + 18, + 33, + 24 + ], + [ + 18, + 34, + 25 + ] + ], + [ + [ + 18, + 26, + 25 + ], + [ + 18, + 28, + 26 + ] + ], + [ + [ + 18, + 28, + 15 + ], + [ + 18, + 29, + 16 + ] + ], + [ + [ + 18, + 20, + 24 + ], + [ + 18, + 22, + 25 + ] + ], + [ + [ + 18, + 20, + 21 + ], + [ + 18, + 21, + 22 + ] + ], + [ + [ + 29, + 26, + 18 + ], + [ + 31, + 27, + 18 + ] + ], + [ + [ + 17, + 23, + 18 + ], + [ + 20, + 24, + 18 + ] + ], + [ + [ + 19, + 28, + 15 + ], + [ + 19, + 29, + 16 + ] + ], + [ + [ + 19, + 30, + 23 + ], + [ + 19, + 31, + 24 + ] + ], + [ + [ + 19, + 30, + 22 + ], + [ + 19, + 31, + 23 + ] + ], + [ + [ + 19, + 31, + 21 + ], + [ + 19, + 32, + 22 + ] + ], + [ + [ + 19, + 23, + 15 + ], + [ + 19, + 24, + 16 + ] + ], + [ + [ + 19, + 9, + 25 + ], + [ + 19, + 14, + 26 + ] + ], + [ + [ + 19, + 17, + 24 + ], + [ + 19, + 18, + 25 + ] + ], + [ + [ + 8, + 26, + 19 + ], + [ + 9, + 27, + 19 + ] + ], + [ + [ + 26, + 24, + 19 + ], + [ + 27, + 25, + 19 + ] + ], + [ + [ + 30, + 25, + 19 + ], + [ + 32, + 26, + 19 + ] + ], + [ + [ + 19, + 39, + 25 + ], + [ + 19, + 44, + 26 + ] + ], + [ + [ + 19, + 34, + 24 + ], + [ + 19, + 35, + 25 + ] + ], + [ + [ + 19, + 28, + 15 + ], + [ + 19, + 29, + 16 + ] + ], + [ + [ + 19, + 28, + 15 + ], + [ + 19, + 29, + 16 + ] + ], + [ + [ + 19, + 23, + 15 + ], + [ + 19, + 24, + 16 + ] + ], + [ + [ + 19, + 24, + 23 + ], + [ + 19, + 25, + 24 + ] + ], + [ + [ + 19, + 20, + 22 + ], + [ + 19, + 21, + 23 + ] + ], + [ + [ + 19, + 21, + 21 + ], + [ + 19, + 22, + 22 + ] + ], + [ + [ + 19, + 20, + 23 + ], + [ + 19, + 21, + 24 + ] + ], + [ + [ + 27, + 27, + 19 + ], + [ + 28, + 28, + 19 + ] + ], + [ + [ + 31, + 26, + 19 + ], + [ + 32, + 27, + 19 + ] + ], + [ + [ + 10, + 24, + 19 + ], + [ + 11, + 25, + 19 + ] + ], + [ + [ + 8, + 25, + 19 + ], + [ + 9, + 26, + 19 + ] + ], + [ + [ + 20, + 34, + 24 + ], + [ + 20, + 35, + 25 + ] + ], + [ + [ + 20, + 43, + 25 + ], + [ + 20, + 44, + 26 + ] + ], + [ + [ + 20, + 31, + 22 + ], + [ + 20, + 32, + 24 + ] + ], + [ + [ + 20, + 23, + 15 + ], + [ + 20, + 24, + 16 + ] + ], + [ + [ + 21, + 20, + 24 + ], + [ + 22, + 20, + 25 + ] + ], + [ + [ + 17, + 20, + 21 + ], + [ + 18, + 20, + 22 + ] + ], + [ + [ + 16, + 20, + 22 + ], + [ + 19, + 20, + 23 + ] + ], + [ + [ + 18, + 20, + 23 + ], + [ + 19, + 20, + 24 + ] + ], + [ + [ + 15, + 20, + 23 + ], + [ + 17, + 20, + 24 + ] + ], + [ + [ + 17, + 20, + 23 + ], + [ + 18, + 20, + 25 + ] + ], + [ + [ + 9, + 26, + 20 + ], + [ + 10, + 27, + 20 + ] + ], + [ + [ + 10, + 27, + 20 + ], + [ + 11, + 28, + 20 + ] + ], + [ + [ + 32, + 25, + 20 + ], + [ + 33, + 26, + 20 + ] + ], + [ + [ + 20, + 23, + 17 + ], + [ + 20, + 24, + 18 + ] + ], + [ + [ + 20, + 23, + 15 + ], + [ + 20, + 24, + 16 + ] + ], + [ + [ + 20, + 17, + 24 + ], + [ + 20, + 18, + 25 + ] + ], + [ + [ + 20, + 21, + 22 + ], + [ + 20, + 22, + 24 + ] + ], + [ + [ + 33, + 26, + 20 + ], + [ + 34, + 27, + 20 + ] + ], + [ + [ + 32, + 26, + 20 + ], + [ + 33, + 27, + 20 + ] + ], + [ + [ + 9, + 25, + 20 + ], + [ + 10, + 26, + 20 + ] + ], + [ + [ + 21, + 32, + 24 + ], + [ + 21, + 34, + 25 + ] + ], + [ + [ + 21, + 40, + 25 + ], + [ + 21, + 43, + 26 + ] + ], + [ + [ + 21, + 26, + 25 + ], + [ + 21, + 28, + 26 + ] + ], + [ + [ + 21, + 28, + 17 + ], + [ + 21, + 29, + 18 + ] + ], + [ + [ + 21, + 28, + 25 + ], + [ + 21, + 37, + 26 + ] + ], + [ + [ + 36, + 21, + 34 + ], + [ + 37, + 21, + 35 + ] + ], + [ + [ + 15, + 21, + 24 + ], + [ + 16, + 21, + 25 + ] + ], + [ + [ + 20, + 21, + 23 + ], + [ + 21, + 21, + 24 + ] + ], + [ + [ + 19, + 21, + 22 + ], + [ + 20, + 21, + 23 + ] + ], + [ + [ + 18, + 21, + 21 + ], + [ + 19, + 21, + 22 + ] + ], + [ + [ + 16, + 21, + 21 + ], + [ + 17, + 21, + 22 + ] + ], + [ + [ + 15, + 21, + 22 + ], + [ + 16, + 21, + 23 + ] + ], + [ + [ + 20, + 21, + 22 + ], + [ + 21, + 21, + 23 + ] + ], + [ + [ + 19, + 21, + 21 + ], + [ + 20, + 21, + 22 + ] + ], + [ + [ + 15, + 21, + 21 + ], + [ + 16, + 21, + 22 + ] + ], + [ + [ + 19, + 21, + 23 + ], + [ + 20, + 21, + 24 + ] + ], + [ + [ + 16, + 21, + 24 + ], + [ + 17, + 21, + 25 + ] + ], + [ + [ + 10, + 26, + 21 + ], + [ + 11, + 27, + 21 + ] + ], + [ + [ + 15, + 21, + 21 + ], + [ + 19, + 22, + 21 + ] + ], + [ + [ + 17, + 20, + 21 + ], + [ + 18, + 21, + 21 + ] + ], + [ + [ + 21, + 18, + 24 + ], + [ + 21, + 20, + 25 + ] + ], + [ + [ + 21, + 9, + 25 + ], + [ + 21, + 12, + 26 + ] + ], + [ + [ + 21, + 25, + 25 + ], + [ + 21, + 26, + 26 + ] + ], + [ + [ + 21, + 15, + 25 + ], + [ + 21, + 25, + 26 + ] + ], + [ + [ + 20, + 21, + 23 + ], + [ + 21, + 21, + 24 + ] + ], + [ + [ + 20, + 21, + 22 + ], + [ + 21, + 21, + 23 + ] + ], + [ + [ + 19, + 21, + 21 + ], + [ + 20, + 21, + 22 + ] + ], + [ + [ + 15, + 21, + 24 + ], + [ + 16, + 21, + 25 + ] + ], + [ + [ + 17, + 30, + 21 + ], + [ + 18, + 31, + 21 + ] + ], + [ + [ + 15, + 31, + 21 + ], + [ + 19, + 32, + 21 + ] + ], + [ + [ + 10, + 25, + 21 + ], + [ + 11, + 26, + 21 + ] + ], + [ + [ + 22, + 28, + 24 + ], + [ + 22, + 32, + 25 + ] + ], + [ + [ + 22, + 27, + 24 + ], + [ + 22, + 28, + 25 + ] + ], + [ + [ + 22, + 28, + 16 + ], + [ + 22, + 29, + 17 + ] + ], + [ + [ + 22, + 26, + 15 + ], + [ + 22, + 27, + 16 + ] + ], + [ + [ + 22, + 28, + 15 + ], + [ + 22, + 29, + 16 + ] + ], + [ + [ + 22, + 37, + 25 + ], + [ + 22, + 40, + 26 + ] + ], + [ + [ + 27, + 27, + 22 + ], + [ + 28, + 28, + 22 + ] + ], + [ + [ + 18, + 20, + 22 + ], + [ + 19, + 21, + 22 + ] + ], + [ + [ + 16, + 20, + 22 + ], + [ + 17, + 21, + 22 + ] + ], + [ + [ + 19, + 21, + 22 + ], + [ + 20, + 22, + 22 + ] + ], + [ + [ + 22, + 23, + 16 + ], + [ + 22, + 24, + 17 + ] + ], + [ + [ + 22, + 24, + 15 + ], + [ + 22, + 26, + 16 + ] + ], + [ + [ + 22, + 20, + 24 + ], + [ + 22, + 25, + 25 + ] + ], + [ + [ + 22, + 12, + 25 + ], + [ + 22, + 15, + 26 + ] + ], + [ + [ + 18, + 22, + 23 + ], + [ + 20, + 22, + 24 + ] + ], + [ + [ + 15, + 22, + 23 + ], + [ + 16, + 22, + 24 + ] + ], + [ + [ + 16, + 22, + 23 + ], + [ + 18, + 22, + 25 + ] + ], + [ + [ + 16, + 22, + 21 + ], + [ + 19, + 22, + 22 + ] + ], + [ + [ + 15, + 22, + 22 + ], + [ + 20, + 22, + 23 + ] + ], + [ + [ + 15, + 22, + 21 + ], + [ + 16, + 22, + 22 + ] + ], + [ + [ + 16, + 30, + 22 + ], + [ + 17, + 31, + 22 + ] + ], + [ + [ + 18, + 30, + 22 + ], + [ + 19, + 31, + 22 + ] + ], + [ + [ + 19, + 31, + 22 + ], + [ + 20, + 32, + 22 + ] + ], + [ + [ + 32, + 25, + 22 + ], + [ + 33, + 26, + 22 + ] + ], + [ + [ + 26, + 24, + 22 + ], + [ + 27, + 25, + 22 + ] + ], + [ + [ + 23, + 27, + 15 + ], + [ + 23, + 28, + 16 + ] + ], + [ + [ + 17, + 23, + 17 + ], + [ + 20, + 23, + 18 + ] + ], + [ + [ + 21, + 23, + 16 + ], + [ + 22, + 23, + 17 + ] + ], + [ + [ + 17, + 23, + 16 + ], + [ + 21, + 23, + 17 + ] + ], + [ + [ + 35, + 23, + 34 + ], + [ + 36, + 23, + 35 + ] + ], + [ + [ + 37, + 23, + 34 + ], + [ + 38, + 23, + 35 + ] + ], + [ + [ + 29, + 26, + 23 + ], + [ + 32, + 27, + 23 + ] + ], + [ + [ + 25, + 27, + 23 + ], + [ + 27, + 28, + 23 + ] + ], + [ + [ + 13, + 27, + 23 + ], + [ + 14, + 28, + 23 + ] + ], + [ + [ + 15, + 20, + 23 + ], + [ + 16, + 21, + 23 + ] + ], + [ + [ + 15, + 30, + 23 + ], + [ + 16, + 31, + 23 + ] + ], + [ + [ + 14, + 24, + 23 + ], + [ + 18, + 25, + 23 + ] + ], + [ + [ + 23, + 24, + 23 + ], + [ + 25, + 25, + 23 + ] + ], + [ + [ + 13, + 24, + 23 + ], + [ + 14, + 25, + 23 + ] + ], + [ + [ + 19, + 24, + 23 + ], + [ + 22, + 25, + 23 + ] + ], + [ + [ + 22, + 24, + 23 + ], + [ + 23, + 25, + 23 + ] + ], + [ + [ + 29, + 25, + 23 + ], + [ + 32, + 26, + 23 + ] + ], + [ + [ + 25, + 24, + 23 + ], + [ + 26, + 25, + 23 + ] + ], + [ + [ + 24, + 26, + 24 + ], + [ + 24, + 27, + 25 + ] + ], + [ + [ + 14, + 24, + 16 + ], + [ + 16, + 24, + 23 + ] + ], + [ + [ + 23, + 24, + 16 + ], + [ + 25, + 24, + 23 + ] + ], + [ + [ + 16, + 24, + 17 + ], + [ + 17, + 24, + 23 + ] + ], + [ + [ + 21, + 24, + 17 + ], + [ + 23, + 24, + 23 + ] + ], + [ + [ + 17, + 24, + 18 + ], + [ + 21, + 24, + 23 + ] + ], + [ + [ + 12, + 24, + 20 + ], + [ + 13, + 24, + 21 + ] + ], + [ + [ + 13, + 24, + 20 + ], + [ + 14, + 24, + 23 + ] + ], + [ + [ + 11, + 24, + 19 + ], + [ + 12, + 24, + 20 + ] + ], + [ + [ + 10, + 24, + 18 + ], + [ + 11, + 24, + 19 + ] + ], + [ + [ + 22, + 24, + 16 + ], + [ + 23, + 24, + 17 + ] + ], + [ + [ + 20, + 24, + 17 + ], + [ + 21, + 24, + 18 + ] + ], + [ + [ + 16, + 24, + 16 + ], + [ + 17, + 24, + 17 + ] + ], + [ + [ + 20, + 24, + 15 + ], + [ + 22, + 24, + 16 + ] + ], + [ + [ + 19, + 24, + 15 + ], + [ + 20, + 24, + 16 + ] + ], + [ + [ + 17, + 24, + 15 + ], + [ + 19, + 24, + 16 + ] + ], + [ + [ + 17, + 24, + 24 + ], + [ + 18, + 24, + 25 + ] + ], + [ + [ + 18, + 24, + 23 + ], + [ + 19, + 24, + 24 + ] + ], + [ + [ + 25, + 24, + 17 + ], + [ + 26, + 24, + 23 + ] + ], + [ + [ + 26, + 24, + 19 + ], + [ + 27, + 24, + 22 + ] + ], + [ + [ + 13, + 24, + 16 + ], + [ + 14, + 24, + 17 + ] + ], + [ + [ + 11, + 24, + 17 + ], + [ + 12, + 24, + 19 + ] + ], + [ + [ + 12, + 24, + 17 + ], + [ + 14, + 24, + 20 + ] + ], + [ + [ + 28, + 26, + 24 + ], + [ + 29, + 27, + 24 + ] + ], + [ + [ + 22, + 27, + 24 + ], + [ + 25, + 28, + 24 + ] + ], + [ + [ + 24, + 26, + 24 + ], + [ + 25, + 27, + 24 + ] + ], + [ + [ + 21, + 27, + 24 + ], + [ + 22, + 28, + 24 + ] + ], + [ + [ + 25, + 26, + 24 + ], + [ + 28, + 27, + 24 + ] + ], + [ + [ + 15, + 31, + 24 + ], + [ + 16, + 32, + 24 + ] + ], + [ + [ + 15, + 30, + 24 + ], + [ + 18, + 31, + 24 + ] + ], + [ + [ + 20, + 31, + 24 + ], + [ + 21, + 32, + 24 + ] + ], + [ + [ + 14, + 26, + 24 + ], + [ + 15, + 27, + 24 + ] + ], + [ + [ + 14, + 27, + 24 + ], + [ + 17, + 28, + 24 + ] + ], + [ + [ + 13, + 26, + 24 + ], + [ + 14, + 27, + 24 + ] + ], + [ + [ + 32, + 26, + 24 + ], + [ + 33, + 27, + 24 + ] + ], + [ + [ + 17, + 24, + 24 + ], + [ + 18, + 25, + 24 + ] + ], + [ + [ + 18, + 18, + 24 + ], + [ + 19, + 20, + 24 + ] + ], + [ + [ + 18, + 22, + 24 + ], + [ + 22, + 25, + 24 + ] + ], + [ + [ + 19, + 17, + 24 + ], + [ + 20, + 21, + 24 + ] + ], + [ + [ + 20, + 18, + 24 + ], + [ + 21, + 20, + 24 + ] + ], + [ + [ + 20, + 20, + 24 + ], + [ + 22, + 22, + 24 + ] + ], + [ + [ + 20, + 21, + 24 + ], + [ + 21, + 22, + 24 + ] + ], + [ + [ + 24, + 25, + 24 + ], + [ + 24, + 26, + 25 + ] + ], + [ + [ + 37, + 24, + 34 + ], + [ + 38, + 24, + 35 + ] + ], + [ + [ + 18, + 28, + 24 + ], + [ + 21, + 30, + 24 + ] + ], + [ + [ + 18, + 32, + 24 + ], + [ + 20, + 34, + 24 + ] + ], + [ + [ + 19, + 30, + 24 + ], + [ + 21, + 31, + 24 + ] + ], + [ + [ + 19, + 34, + 24 + ], + [ + 20, + 35, + 24 + ] + ], + [ + [ + 20, + 31, + 24 + ], + [ + 21, + 34, + 24 + ] + ], + [ + [ + 21, + 27, + 24 + ], + [ + 22, + 32, + 24 + ] + ], + [ + [ + 20, + 31, + 24 + ], + [ + 21, + 32, + 24 + ] + ], + [ + [ + 24, + 25, + 24 + ], + [ + 28, + 26, + 24 + ] + ], + [ + [ + 14, + 25, + 24 + ], + [ + 15, + 26, + 24 + ] + ], + [ + [ + 13, + 25, + 24 + ], + [ + 14, + 26, + 24 + ] + ], + [ + [ + 18, + 30, + 24 + ], + [ + 19, + 31, + 24 + ] + ], + [ + [ + 18, + 31, + 24 + ], + [ + 20, + 32, + 24 + ] + ], + [ + [ + 18, + 24, + 24 + ], + [ + 19, + 25, + 24 + ] + ], + [ + [ + 20, + 21, + 24 + ], + [ + 21, + 22, + 24 + ] + ], + [ + [ + 15, + 21, + 24 + ], + [ + 16, + 22, + 24 + ] + ], + [ + [ + 15, + 20, + 24 + ], + [ + 17, + 21, + 24 + ] + ], + [ + [ + 18, + 20, + 24 + ], + [ + 19, + 21, + 24 + ] + ], + [ + [ + 18, + 21, + 24 + ], + [ + 20, + 22, + 24 + ] + ], + [ + [ + 28, + 25, + 24 + ], + [ + 29, + 26, + 24 + ] + ], + [ + [ + 25, + 27, + 23 + ], + [ + 25, + 28, + 24 + ] + ], + [ + [ + 23, + 25, + 24 + ], + [ + 24, + 25, + 25 + ] + ], + [ + [ + 14, + 25, + 23 + ], + [ + 17, + 25, + 24 + ] + ], + [ + [ + 23, + 25, + 23 + ], + [ + 25, + 25, + 24 + ] + ], + [ + [ + 15, + 25, + 24 + ], + [ + 17, + 25, + 25 + ] + ], + [ + [ + 13, + 25, + 23 + ], + [ + 14, + 25, + 24 + ] + ], + [ + [ + 8, + 25, + 16 + ], + [ + 10, + 25, + 19 + ] + ], + [ + [ + 10, + 25, + 16 + ], + [ + 11, + 25, + 18 + ] + ], + [ + [ + 9, + 25, + 19 + ], + [ + 10, + 25, + 20 + ] + ], + [ + [ + 10, + 25, + 19 + ], + [ + 11, + 25, + 21 + ] + ], + [ + [ + 19, + 25, + 23 + ], + [ + 22, + 25, + 24 + ] + ], + [ + [ + 17, + 25, + 23 + ], + [ + 18, + 25, + 24 + ] + ], + [ + [ + 22, + 25, + 23 + ], + [ + 23, + 25, + 24 + ] + ], + [ + [ + 22, + 25, + 24 + ], + [ + 23, + 25, + 25 + ] + ], + [ + [ + 25, + 25, + 16 + ], + [ + 27, + 25, + 17 + ] + ], + [ + [ + 28, + 25, + 18 + ], + [ + 29, + 25, + 24 + ] + ], + [ + [ + 29, + 25, + 19 + ], + [ + 32, + 25, + 23 + ] + ], + [ + [ + 32, + 25, + 20 + ], + [ + 33, + 25, + 22 + ] + ], + [ + [ + 26, + 25, + 17 + ], + [ + 27, + 25, + 19 + ] + ], + [ + [ + 27, + 25, + 18 + ], + [ + 28, + 25, + 24 + ] + ], + [ + [ + 26, + 25, + 22 + ], + [ + 27, + 25, + 24 + ] + ], + [ + [ + 25, + 25, + 23 + ], + [ + 26, + 25, + 24 + ] + ], + [ + [ + 29, + 25, + 18 + ], + [ + 30, + 25, + 19 + ] + ], + [ + [ + 28, + 25, + 17 + ], + [ + 29, + 25, + 18 + ] + ], + [ + [ + 11, + 25, + 16 + ], + [ + 13, + 25, + 17 + ] + ], + [ + [ + 27, + 25, + 17 + ], + [ + 28, + 25, + 18 + ] + ], + [ + [ + 37, + 25, + 34 + ], + [ + 38, + 25, + 35 + ] + ], + [ + [ + 17, + 28, + 25 + ], + [ + 18, + 29, + 25 + ] + ], + [ + [ + 23, + 26, + 25 + ], + [ + 24, + 27, + 25 + ] + ], + [ + [ + 21, + 26, + 25 + ], + [ + 23, + 27, + 25 + ] + ], + [ + [ + 21, + 27, + 25 + ], + [ + 22, + 28, + 25 + ] + ], + [ + [ + 17, + 26, + 25 + ], + [ + 18, + 28, + 25 + ] + ], + [ + [ + 16, + 31, + 25 + ], + [ + 18, + 32, + 25 + ] + ], + [ + [ + 21, + 28, + 25 + ], + [ + 22, + 37, + 25 + ] + ], + [ + [ + 15, + 26, + 25 + ], + [ + 17, + 27, + 25 + ] + ], + [ + [ + 18, + 14, + 25 + ], + [ + 19, + 16, + 25 + ] + ], + [ + [ + 18, + 16, + 25 + ], + [ + 19, + 18, + 25 + ] + ], + [ + [ + 19, + 9, + 25 + ], + [ + 21, + 17, + 25 + ] + ], + [ + [ + 20, + 17, + 25 + ], + [ + 21, + 18, + 25 + ] + ], + [ + [ + 21, + 12, + 25 + ], + [ + 22, + 20, + 25 + ] + ], + [ + [ + 25, + 24, + 16 + ], + [ + 25, + 25, + 17 + ] + ], + [ + [ + 18, + 36, + 25 + ], + [ + 19, + 39, + 25 + ] + ], + [ + [ + 17, + 28, + 25 + ], + [ + 18, + 29, + 25 + ] + ], + [ + [ + 18, + 34, + 25 + ], + [ + 19, + 36, + 25 + ] + ], + [ + [ + 19, + 35, + 25 + ], + [ + 20, + 44, + 25 + ] + ], + [ + [ + 20, + 34, + 25 + ], + [ + 21, + 43, + 25 + ] + ], + [ + [ + 21, + 32, + 25 + ], + [ + 22, + 40, + 25 + ] + ], + [ + [ + 23, + 25, + 25 + ], + [ + 24, + 26, + 25 + ] + ], + [ + [ + 15, + 25, + 25 + ], + [ + 17, + 26, + 25 + ] + ], + [ + [ + 17, + 24, + 25 + ], + [ + 18, + 25, + 25 + ] + ], + [ + [ + 21, + 25, + 25 + ], + [ + 23, + 26, + 25 + ] + ], + [ + [ + 17, + 25, + 25 + ], + [ + 18, + 26, + 25 + ] + ], + [ + [ + 16, + 21, + 25 + ], + [ + 18, + 22, + 25 + ] + ], + [ + [ + 17, + 20, + 25 + ], + [ + 18, + 21, + 25 + ] + ], + [ + [ + 21, + 15, + 25 + ], + [ + 22, + 25, + 25 + ] + ], + [ + [ + 26, + 27, + 16 + ], + [ + 26, + 28, + 17 + ] + ], + [ + [ + 27, + 26, + 16 + ], + [ + 28, + 26, + 17 + ] + ], + [ + [ + 33, + 26, + 20 + ], + [ + 34, + 26, + 31 + ] + ], + [ + [ + 34, + 26, + 21 + ], + [ + 35, + 26, + 34 + ] + ], + [ + [ + 35, + 26, + 21 + ], + [ + 36, + 26, + 36 + ] + ], + [ + [ + 32, + 26, + 22 + ], + [ + 33, + 26, + 28 + ] + ], + [ + [ + 31, + 26, + 23 + ], + [ + 32, + 26, + 25 + ] + ], + [ + [ + 36, + 26, + 25 + ], + [ + 37, + 26, + 37 + ] + ], + [ + [ + 37, + 26, + 29 + ], + [ + 38, + 26, + 37 + ] + ], + [ + [ + 38, + 26, + 33 + ], + [ + 39, + 26, + 37 + ] + ], + [ + [ + 32, + 26, + 19 + ], + [ + 33, + 26, + 20 + ] + ], + [ + [ + 14, + 26, + 24 + ], + [ + 15, + 26, + 25 + ] + ], + [ + [ + 7, + 26, + 17 + ], + [ + 8, + 26, + 18 + ] + ], + [ + [ + 30, + 26, + 18 + ], + [ + 31, + 26, + 19 + ] + ], + [ + [ + 18, + 36, + 26 + ], + [ + 19, + 39, + 26 + ] + ], + [ + [ + 18, + 26, + 26 + ], + [ + 21, + 28, + 26 + ] + ], + [ + [ + 18, + 28, + 26 + ], + [ + 21, + 36, + 26 + ] + ], + [ + [ + 19, + 36, + 26 + ], + [ + 21, + 37, + 26 + ] + ], + [ + [ + 19, + 37, + 26 + ], + [ + 22, + 44, + 26 + ] + ], + [ + [ + 18, + 13, + 26 + ], + [ + 19, + 14, + 26 + ] + ], + [ + [ + 21, + 9, + 26 + ], + [ + 22, + 12, + 26 + ] + ], + [ + [ + 26, + 24, + 17 + ], + [ + 26, + 25, + 19 + ] + ], + [ + [ + 26, + 24, + 22 + ], + [ + 26, + 25, + 23 + ] + ], + [ + [ + 17, + 26, + 15 + ], + [ + 18, + 26, + 16 + ] + ], + [ + [ + 20, + 43, + 26 + ], + [ + 22, + 44, + 26 + ] + ], + [ + [ + 21, + 40, + 26 + ], + [ + 22, + 43, + 26 + ] + ], + [ + [ + 18, + 13, + 26 + ], + [ + 19, + 16, + 26 + ] + ], + [ + [ + 18, + 25, + 26 + ], + [ + 21, + 26, + 26 + ] + ], + [ + [ + 18, + 16, + 26 + ], + [ + 21, + 25, + 26 + ] + ], + [ + [ + 19, + 9, + 26 + ], + [ + 22, + 15, + 26 + ] + ], + [ + [ + 19, + 15, + 26 + ], + [ + 21, + 16, + 26 + ] + ], + [ + [ + 27, + 26, + 16 + ], + [ + 27, + 27, + 17 + ] + ], + [ + [ + 27, + 27, + 17 + ], + [ + 27, + 28, + 19 + ] + ], + [ + [ + 27, + 27, + 22 + ], + [ + 27, + 28, + 23 + ] + ], + [ + [ + 26, + 27, + 16 + ], + [ + 27, + 27, + 17 + ] + ], + [ + [ + 28, + 27, + 18 + ], + [ + 29, + 27, + 24 + ] + ], + [ + [ + 29, + 27, + 19 + ], + [ + 32, + 27, + 23 + ] + ], + [ + [ + 32, + 27, + 20 + ], + [ + 34, + 27, + 22 + ] + ], + [ + [ + 23, + 27, + 24 + ], + [ + 24, + 27, + 25 + ] + ], + [ + [ + 27, + 27, + 22 + ], + [ + 28, + 27, + 24 + ] + ], + [ + [ + 25, + 27, + 23 + ], + [ + 27, + 27, + 24 + ] + ], + [ + [ + 27, + 27, + 18 + ], + [ + 28, + 27, + 19 + ] + ], + [ + [ + 29, + 27, + 18 + ], + [ + 31, + 27, + 19 + ] + ], + [ + [ + 28, + 27, + 17 + ], + [ + 29, + 27, + 18 + ] + ], + [ + [ + 8, + 27, + 16 + ], + [ + 11, + 27, + 17 + ] + ], + [ + [ + 7, + 27, + 17 + ], + [ + 8, + 27, + 18 + ] + ], + [ + [ + 8, + 27, + 17 + ], + [ + 9, + 27, + 19 + ] + ], + [ + [ + 9, + 27, + 17 + ], + [ + 10, + 27, + 20 + ] + ], + [ + [ + 10, + 27, + 20 + ], + [ + 11, + 27, + 21 + ] + ], + [ + [ + 15, + 27, + 24 + ], + [ + 17, + 27, + 25 + ] + ], + [ + [ + 13, + 27, + 23 + ], + [ + 14, + 27, + 24 + ] + ], + [ + [ + 22, + 27, + 24 + ], + [ + 23, + 27, + 25 + ] + ], + [ + [ + 32, + 27, + 22 + ], + [ + 33, + 27, + 24 + ] + ], + [ + [ + 33, + 27, + 22 + ], + [ + 34, + 27, + 27 + ] + ], + [ + [ + 27, + 27, + 17 + ], + [ + 28, + 27, + 18 + ] + ], + [ + [ + 37, + 27, + 34 + ], + [ + 38, + 27, + 35 + ] + ], + [ + [ + 33, + 26, + 27 + ], + [ + 34, + 27, + 27 + ] + ], + [ + [ + 27, + 25, + 16 + ], + [ + 27, + 26, + 17 + ] + ], + [ + [ + 27, + 24, + 19 + ], + [ + 27, + 25, + 22 + ] + ], + [ + [ + 22, + 27, + 15 + ], + [ + 23, + 27, + 16 + ] + ], + [ + [ + 28, + 27, + 19 + ], + [ + 28, + 28, + 22 + ] + ], + [ + [ + 25, + 28, + 16 + ], + [ + 26, + 28, + 17 + ] + ], + [ + [ + 14, + 28, + 16 + ], + [ + 16, + 28, + 24 + ] + ], + [ + [ + 23, + 28, + 16 + ], + [ + 25, + 28, + 24 + ] + ], + [ + [ + 16, + 28, + 17 + ], + [ + 17, + 28, + 24 + ] + ], + [ + [ + 21, + 28, + 17 + ], + [ + 23, + 28, + 23 + ] + ], + [ + [ + 17, + 28, + 18 + ], + [ + 21, + 28, + 23 + ] + ], + [ + [ + 17, + 28, + 24 + ], + [ + 18, + 28, + 25 + ] + ], + [ + [ + 17, + 28, + 23 + ], + [ + 23, + 28, + 24 + ] + ], + [ + [ + 22, + 28, + 16 + ], + [ + 23, + 28, + 17 + ] + ], + [ + [ + 16, + 28, + 16 + ], + [ + 17, + 28, + 17 + ] + ], + [ + [ + 22, + 28, + 15 + ], + [ + 23, + 28, + 16 + ] + ], + [ + [ + 18, + 28, + 15 + ], + [ + 19, + 28, + 16 + ] + ], + [ + [ + 17, + 28, + 15 + ], + [ + 18, + 28, + 16 + ] + ], + [ + [ + 25, + 28, + 17 + ], + [ + 27, + 28, + 23 + ] + ], + [ + [ + 27, + 28, + 19 + ], + [ + 28, + 28, + 22 + ] + ], + [ + [ + 10, + 28, + 17 + ], + [ + 11, + 28, + 20 + ] + ], + [ + [ + 12, + 28, + 20 + ], + [ + 13, + 28, + 21 + ] + ], + [ + [ + 13, + 28, + 20 + ], + [ + 14, + 28, + 23 + ] + ], + [ + [ + 11, + 28, + 19 + ], + [ + 12, + 28, + 20 + ] + ], + [ + [ + 11, + 28, + 16 + ], + [ + 14, + 28, + 17 + ] + ], + [ + [ + 11, + 28, + 17 + ], + [ + 12, + 28, + 19 + ] + ], + [ + [ + 12, + 28, + 17 + ], + [ + 14, + 28, + 20 + ] + ], + [ + [ + 37, + 28, + 34 + ], + [ + 38, + 28, + 35 + ] + ], + [ + [ + 29, + 26, + 23 + ], + [ + 29, + 27, + 24 + ] + ], + [ + [ + 29, + 26, + 17 + ], + [ + 29, + 27, + 18 + ] + ], + [ + [ + 17, + 29, + 17 + ], + [ + 21, + 29, + 18 + ] + ], + [ + [ + 21, + 29, + 16 + ], + [ + 22, + 29, + 17 + ] + ], + [ + [ + 19, + 29, + 15 + ], + [ + 22, + 29, + 16 + ] + ], + [ + [ + 17, + 29, + 16 + ], + [ + 21, + 29, + 17 + ] + ], + [ + [ + 35, + 29, + 34 + ], + [ + 36, + 29, + 35 + ] + ], + [ + [ + 37, + 29, + 34 + ], + [ + 38, + 29, + 35 + ] + ], + [ + [ + 29, + 25, + 23 + ], + [ + 29, + 26, + 24 + ] + ], + [ + [ + 29, + 25, + 17 + ], + [ + 29, + 26, + 18 + ] + ], + [ + [ + 30, + 25, + 18 + ], + [ + 30, + 26, + 19 + ] + ], + [ + [ + 18, + 30, + 23 + ], + [ + 19, + 30, + 24 + ] + ], + [ + [ + 15, + 30, + 23 + ], + [ + 18, + 30, + 24 + ] + ], + [ + [ + 17, + 30, + 21 + ], + [ + 18, + 30, + 22 + ] + ], + [ + [ + 16, + 30, + 22 + ], + [ + 19, + 30, + 23 + ] + ], + [ + [ + 31, + 26, + 18 + ], + [ + 31, + 27, + 19 + ] + ], + [ + [ + 15, + 31, + 24 + ], + [ + 16, + 31, + 25 + ] + ], + [ + [ + 20, + 31, + 23 + ], + [ + 21, + 31, + 24 + ] + ], + [ + [ + 20, + 31, + 22 + ], + [ + 21, + 31, + 23 + ] + ], + [ + [ + 19, + 31, + 21 + ], + [ + 20, + 31, + 22 + ] + ], + [ + [ + 19, + 31, + 23 + ], + [ + 20, + 31, + 24 + ] + ], + [ + [ + 16, + 31, + 24 + ], + [ + 18, + 31, + 25 + ] + ], + [ + [ + 15, + 31, + 22 + ], + [ + 16, + 31, + 23 + ] + ], + [ + [ + 16, + 31, + 21 + ], + [ + 17, + 31, + 22 + ] + ], + [ + [ + 18, + 31, + 21 + ], + [ + 19, + 31, + 22 + ] + ], + [ + [ + 19, + 31, + 22 + ], + [ + 20, + 31, + 23 + ] + ], + [ + [ + 20, + 31, + 23 + ], + [ + 21, + 31, + 24 + ] + ], + [ + [ + 20, + 31, + 22 + ], + [ + 21, + 31, + 23 + ] + ], + [ + [ + 19, + 31, + 21 + ], + [ + 20, + 31, + 22 + ] + ], + [ + [ + 15, + 31, + 21 + ], + [ + 16, + 31, + 22 + ] + ], + [ + [ + 15, + 31, + 24 + ], + [ + 16, + 31, + 25 + ] + ], + [ + [ + 32, + 26, + 19 + ], + [ + 32, + 27, + 20 + ] + ], + [ + [ + 21, + 32, + 24 + ], + [ + 22, + 32, + 25 + ] + ], + [ + [ + 36, + 32, + 34 + ], + [ + 37, + 32, + 35 + ] + ], + [ + [ + 16, + 32, + 21 + ], + [ + 19, + 32, + 22 + ] + ], + [ + [ + 15, + 32, + 22 + ], + [ + 20, + 32, + 23 + ] + ], + [ + [ + 15, + 32, + 21 + ], + [ + 16, + 32, + 22 + ] + ], + [ + [ + 18, + 32, + 23 + ], + [ + 20, + 32, + 24 + ] + ], + [ + [ + 15, + 32, + 23 + ], + [ + 16, + 32, + 24 + ] + ], + [ + [ + 16, + 32, + 23 + ], + [ + 18, + 32, + 25 + ] + ], + [ + [ + 32, + 26, + 23 + ], + [ + 32, + 27, + 24 + ] + ], + [ + [ + 32, + 25, + 22 + ], + [ + 32, + 26, + 23 + ] + ], + [ + [ + 32, + 25, + 19 + ], + [ + 32, + 26, + 20 + ] + ], + [ + [ + 33, + 26, + 24 + ], + [ + 33, + 27, + 27 + ] + ], + [ + [ + 33, + 25, + 20 + ], + [ + 33, + 26, + 22 + ] + ], + [ + [ + 34, + 26, + 20 + ], + [ + 34, + 27, + 22 + ] + ], + [ + [ + 34, + 26, + 22 + ], + [ + 34, + 27, + 28 + ] + ], + [ + [ + 20, + 34, + 24 + ], + [ + 21, + 34, + 25 + ] + ], + [ + [ + 18, + 34, + 24 + ], + [ + 19, + 34, + 25 + ] + ], + [ + [ + 35, + 23, + 34 + ], + [ + 36, + 24, + 34 + ] + ], + [ + [ + 35, + 24, + 34 + ], + [ + 37, + 25, + 34 + ] + ], + [ + [ + 35, + 25, + 34 + ], + [ + 38, + 26, + 34 + ] + ], + [ + [ + 36, + 21, + 34 + ], + [ + 37, + 24, + 34 + ] + ], + [ + [ + 37, + 23, + 34 + ], + [ + 38, + 24, + 34 + ] + ], + [ + [ + 34, + 26, + 27 + ], + [ + 34, + 27, + 28 + ] + ], + [ + [ + 35, + 26, + 34 + ], + [ + 38, + 27, + 34 + ] + ], + [ + [ + 35, + 27, + 34 + ], + [ + 37, + 29, + 34 + ] + ], + [ + [ + 36, + 29, + 34 + ], + [ + 37, + 32, + 34 + ] + ], + [ + [ + 37, + 28, + 34 + ], + [ + 38, + 29, + 34 + ] + ], + [ + [ + 35, + 23, + 34 + ], + [ + 35, + 26, + 35 + ] + ], + [ + [ + 19, + 35, + 24 + ], + [ + 20, + 35, + 25 + ] + ], + [ + [ + 35, + 26, + 35 + ], + [ + 38, + 29, + 35 + ] + ], + [ + [ + 36, + 29, + 35 + ], + [ + 38, + 32, + 35 + ] + ], + [ + [ + 37, + 24, + 35 + ], + [ + 38, + 25, + 35 + ] + ], + [ + [ + 37, + 21, + 35 + ], + [ + 38, + 23, + 35 + ] + ], + [ + [ + 35, + 26, + 34 + ], + [ + 35, + 29, + 35 + ] + ], + [ + [ + 35, + 23, + 35 + ], + [ + 38, + 26, + 35 + ] + ], + [ + [ + 36, + 21, + 35 + ], + [ + 38, + 23, + 35 + ] + ], + [ + [ + 37, + 27, + 35 + ], + [ + 38, + 28, + 35 + ] + ], + [ + [ + 37, + 29, + 35 + ], + [ + 38, + 32, + 35 + ] + ], + [ + [ + 36, + 21, + 34 + ], + [ + 36, + 23, + 35 + ] + ], + [ + [ + 36, + 29, + 34 + ], + [ + 36, + 32, + 35 + ] + ], + [ + [ + 37, + 27, + 34 + ], + [ + 37, + 28, + 35 + ] + ], + [ + [ + 37, + 29, + 34 + ], + [ + 37, + 32, + 35 + ] + ], + [ + [ + 37, + 21, + 34 + ], + [ + 37, + 23, + 35 + ] + ], + [ + [ + 37, + 24, + 34 + ], + [ + 37, + 25, + 35 + ] + ], + [ + [ + 21, + 37, + 25 + ], + [ + 22, + 37, + 26 + ] + ], + [ + [ + 38, + 26, + 34 + ], + [ + 38, + 27, + 35 + ] + ], + [ + [ + 38, + 28, + 34 + ], + [ + 38, + 29, + 35 + ] + ], + [ + [ + 38, + 25, + 34 + ], + [ + 38, + 26, + 35 + ] + ], + [ + [ + 38, + 23, + 34 + ], + [ + 38, + 24, + 35 + ] + ], + [ + [ + 18, + 39, + 25 + ], + [ + 19, + 39, + 26 + ] + ], + [ + [ + 21, + 40, + 25 + ], + [ + 22, + 40, + 26 + ] + ], + [ + [ + 20, + 43, + 25 + ], + [ + 21, + 43, + 26 + ] + ], + [ + [ + 19, + 44, + 25 + ], + [ + 20, + 44, + 26 + ] + ] + ] + }, + { + "id": 4, + "type": "cell", + "intervals": [ + [ + [ + 40.0, + 26.0, + 37.0 + ], + [ + 40.0, + 26.0, + 34.0 + ] + ], + [ + [ + 40.0, + 26.0, + 34.0 + ], + [ + 41.0, + 26.0, + 34.0 + ] + ], + [ + [ + 41.0, + 26.0, + 34.0 + ], + [ + 41.0, + 26.0, + 32.0 + ] + ], + [ + [ + 41.0, + 26.0, + 32.0 + ], + [ + 42.0, + 26.0, + 32.0 + ] + ], + [ + [ + 42.0, + 26.0, + 32.0 + ], + [ + 42.0, + 26.0, + 29.0 + ] + ], + [ + [ + 42.0, + 26.0, + 29.0 + ], + [ + 43.0, + 26.0, + 29.0 + ] + ], + [ + [ + 43.0, + 26.0, + 29.0 + ], + [ + 43.0, + 26.0, + 27.0 + ] + ], + [ + [ + 43.0, + 26.0, + 27.0 + ], + [ + 44.0, + 26.0, + 27.0 + ] + ], + [ + [ + 44.0, + 26.0, + 27.0 + ], + [ + 44.0, + 26.0, + 24.0 + ] + ], + [ + [ + 44.0, + 26.0, + 24.0 + ], + [ + 45.0, + 26.0, + 24.0 + ] + ], + [ + [ + 45.0, + 26.0, + 24.0 + ], + [ + 45.0, + 26.0, + 22.0 + ] + ], + [ + [ + 45.0, + 26.0, + 22.0 + ], + [ + 46.0, + 26.0, + 22.0 + ] + ], + [ + [ + 46.0, + 26.0, + 22.0 + ], + [ + 46.0, + 26.0, + 19.0 + ] + ], + [ + [ + 46.0, + 26.0, + 19.0 + ], + [ + 47.0, + 26.0, + 19.0 + ] + ], + [ + [ + 47.0, + 26.0, + 19.0 + ], + [ + 47.0, + 26.0, + 16.0 + ] + ], + [ + [ + 47.0, + 26.0, + 16.0 + ], + [ + 48.0, + 26.0, + 16.0 + ] + ], + [ + [ + 48.0, + 26.0, + 16.0 + ], + [ + 48.0, + 26.0, + 14.0 + ] + ], + [ + [ + 48.0, + 26.0, + 14.0 + ], + [ + 49.0, + 26.0, + 14.0 + ] + ], + [ + [ + 49.0, + 26.0, + 14.0 + ], + [ + 49.0, + 26.0, + 11.0 + ] + ], + [ + [ + 49.0, + 26.0, + 11.0 + ], + [ + 50.0, + 26.0, + 11.0 + ] + ], + [ + [ + 50.0, + 26.0, + 11.0 + ], + [ + 50.0, + 26.0, + 10.0 + ] + ] + ] + } + ] + }, + "materials": [ + { + "id": 1, + "type": "pec" + } + ], + "materialAssociations": [ + { + "type": "surface", + "materialId": 1, + "elementIds": [ + 3, + 4 + ] + } + ], + "sources": [ + { + "name": "nodalSource", + "type": "nodalSource", + "magnitudeFile": "dummy.exc", + "elementIds": [ + 1 + ], + "field": "electric" + } + ], + "probes": [ + { + "name": "Movie", + "type": "movie", + "field": "electric", + "component": "magnitude", + "elementIds": [ + 2 + ], + "domain": { + "type": "time" + } + } + ] +} \ No newline at end of file diff --git a/testData/cases/airplane/dummy.exc b/testData/cases/airplane/dummy.exc new file mode 100644 index 00000000..56e3977a --- /dev/null +++ b/testData/cases/airplane/dummy.exc @@ -0,0 +1,4 @@ +0.0000000000e+00 1.5229979745e-08 +1.2971876000e-09 8.8863573893e-01 +2.5943752000e-09 2.7868405735e-11 +3.8915628000e-09 4.6974738733e-40 From a903b90e5f91a5866fa1620ed8a16fa98281df47 Mon Sep 17 00:00:00 2001 From: Luis Manuel Diaz Angulo Date: Wed, 29 Jan 2025 10:35:06 +0100 Subject: [PATCH 6/8] Implements mpi tests --- src_pyWrapper/pyWrapper.py | 36 ++++--- test/pyWrapper/test_integration.py | 148 ++++++++++++++++++----------- test/pyWrapper/test_pyWrapper.py | 33 ++++++- test/pyWrapper/utils.py | 6 ++ 4 files changed, 153 insertions(+), 70 deletions(-) diff --git a/src_pyWrapper/pyWrapper.py b/src_pyWrapper/pyWrapper.py index 9ccdc6b8..715d19e8 100644 --- a/src_pyWrapper/pyWrapper.py +++ b/src_pyWrapper/pyWrapper.py @@ -24,7 +24,8 @@ class Probe(): + BULK_CURRENT_PROBE_TAGS \ + POINT_PROBE_TAGS \ + FAR_FIELD_TAG \ - + MOVIE_TAGS + + MOVIE_TAGS + def __init__(self, probe_filename): if isinstance(probe_filename, os.PathLike): self.filename = probe_filename.as_posix() @@ -92,7 +93,7 @@ def __init__(self, probe_filename): self.field, self.direction = Probe._getFieldAndDirection(tag) self.cell_init, self.cell_end = \ Probe._positionStrToTwoCells(position_str) - + if self.domainType == 'time': self.data = self.data.rename(columns={ 't': 'time', @@ -179,17 +180,32 @@ def _getFieldAndDirection(tag: str): class FDTD(): - def __init__(self, input_filename, path_to_exe=None, flags=[], run_in_folder=None): + def __init__(self, input_filename, path_to_exe=None, + flags=None, run_in_folder=None, mpi_command=None): + self._setFilename(input_filename) if path_to_exe is None: - self.path_to_exe = os.path.join( - os.getcwd(), DEFAULT_SEMBA_FDTD_PATH) + semba_exe = \ + os.path.join(os.getcwd(), DEFAULT_SEMBA_FDTD_PATH) + else: + semba_exe = path_to_exe + assert os.path.isfile(semba_exe) + + if mpi_command is None: + mpi_command_parts = [] else: - self.path_to_exe = path_to_exe - assert os.path.isfile(self.path_to_exe) + mpi_command_parts = mpi_command.split() + + if flags is None: + flags = [] + elif isinstance(flags, str): + flags = flags.split() + + case_name = self.getCaseName() + ".json" + self.run_command = \ + mpi_command_parts + [semba_exe] + ["-i", case_name] + flags - self.flags = flags self._hasRun = False if run_in_folder != None: @@ -263,9 +279,7 @@ def run(self): json.dump(self._input, open(self._filename, 'w')) os.chdir(self.getFolder()) - case_name = self.getCaseName() + ".json" - self.output = subprocess.run( - [self.path_to_exe, "-i", case_name]+self.flags) + self.output = subprocess.run(self.run_command) self._hasRun = True assert self.hasFinishedSuccessfully() diff --git a/test/pyWrapper/test_integration.py b/test/pyWrapper/test_integration.py index bb595b38..b29616ee 100644 --- a/test/pyWrapper/test_integration.py +++ b/test/pyWrapper/test_integration.py @@ -39,6 +39,19 @@ def test_towel_hanger_case_creates_output_probes(tmp_path): assert countLinesInFile(probe_mid[0]) == 3 assert countLinesInFile(probe_end[0]) == 3 +@no_mpi_skip +def test_airplane_case_with_mpi(tmp_path): + fn = CASES_FOLDER + 'airplane/airplane.fdtd.json' + solver = FDTD(fn, + path_to_exe=SEMBA_EXE, + run_in_folder=tmp_path, + flags=['-mapvtk'], + mpi_command='mpirun -np 2') + solver.run() + + vtkmapfile = solver.getVTKMap() + assert os.path.isfile(vtkmapfile) + def test_sphere_case_with_far_field_probe_launches(tmp_path): fn = CASES_FOLDER + 'sphere/sphere.fdtd.json' @@ -66,29 +79,34 @@ def test_tagnumbers_3_surfaces(tmp_path): solver['general']['numberOfSteps'] = 1 solver.run() - + vtkmapfile = solver.getVTKMap() assert os.path.isfile(vtkmapfile) - face_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'tagnumber') + face_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='tagnumber') assert face_tag_dict[64] == 4 assert face_tag_dict[128] == 4 assert face_tag_dict[192] == 4 - line_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'tagnumber') + line_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='tagnumber') assert line_tag_dict[64] == 8 assert line_tag_dict[128] == 4 assert line_tag_dict[192] == 4 - - face_media_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'mediatype') - assert face_media_dict[0] == 4 #PEC surface - assert face_media_dict[304] == 4 #SGBC surface - assert face_media_dict[305] == 4 #SGBC surface - - line_media_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'mediatype') - assert line_media_dict[0.5] == 8 #PEC line - assert line_media_dict[3.5] == 8 #SGBC line - + + face_media_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='mediatype') + assert face_media_dict[0] == 4 # PEC surface + assert face_media_dict[304] == 4 # SGBC surface + assert face_media_dict[305] == 4 # SGBC surface + + line_media_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='mediatype') + assert line_media_dict[0.5] == 8 # PEC line + assert line_media_dict[3.5] == 8 # SGBC line + + def test_tagnumbers_1_volume(tmp_path): fn = CASES_FOLDER + 'tagNumber_mediaType/pec_volume.fdtd.json' solver = FDTD(input_filename=fn, path_to_exe=SEMBA_EXE, @@ -100,18 +118,23 @@ def test_tagnumbers_1_volume(tmp_path): vtkmapfile = solver.getVTKMap() assert os.path.isfile(vtkmapfile) - face_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'tagnumber') + face_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='tagnumber') assert face_tag_dict[64] == 36 - - line_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'tagnumber') + + line_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='tagnumber') assert len(line_tag_dict) == 0 - - face_media_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'mediatype') - assert face_media_dict[0] == 36 #PEC surface - - line_media_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'mediatype') + + face_media_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='mediatype') + assert face_media_dict[0] == 36 # PEC surface + + line_media_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='mediatype') assert len(line_media_dict) == 0 + def test_tagnumbers_2_volumes(tmp_path): fn = CASES_FOLDER + 'tagNumber_mediaType/pec_volumes.fdtd.json' solver = FDTD(input_filename=fn, path_to_exe=SEMBA_EXE, @@ -123,19 +146,24 @@ def test_tagnumbers_2_volumes(tmp_path): vtkmapfile = solver.getVTKMap() assert os.path.isfile(vtkmapfile) - face_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'tagnumber') + face_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='tagnumber') assert face_tag_dict[64] == 36 assert face_tag_dict[128] == 36 - - line_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'tagnumber') + + line_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='tagnumber') assert len(line_tag_dict) == 0 - - face_media_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'mediatype') - assert face_media_dict[0] == 72 #PEC surface - - line_media_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'mediatype') + + face_media_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='mediatype') + assert face_media_dict[0] == 72 # PEC surface + + line_media_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='mediatype') assert len(line_media_dict) == 0 + def test_tagnumbers_1_line(tmp_path): fn = CASES_FOLDER + 'tagNumber_mediaType/pec_line.fdtd.json' solver = FDTD(input_filename=fn, path_to_exe=SEMBA_EXE, @@ -147,18 +175,23 @@ def test_tagnumbers_1_line(tmp_path): vtkmapfile = solver.getVTKMap() assert os.path.isfile(vtkmapfile) - face_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'tagnumber') + face_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='tagnumber') assert len(face_tag_dict) == 0 - - line_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'tagnumber') + + line_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='tagnumber') assert line_tag_dict[64] == 2 - - face_media_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'mediatype') + + face_media_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='mediatype') assert len(face_media_dict) == 0 - - line_media_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'mediatype') - assert line_media_dict[0.5] == 2 #PEC line - + + line_media_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='mediatype') + assert line_media_dict[0.5] == 2 # PEC line + + def test_tagnumbers_volume_and_surfaces(tmp_path): fn = CASES_FOLDER + 'tagNumber_mediaType/volume_and_surfaces.fdtd.json' solver = FDTD(input_filename=fn, path_to_exe=SEMBA_EXE, @@ -170,26 +203,31 @@ def test_tagnumbers_volume_and_surfaces(tmp_path): vtkmapfile = solver.getVTKMap() assert os.path.isfile(vtkmapfile) - face_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'tagnumber') + face_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='tagnumber') assert face_tag_dict[64] == 6 assert face_tag_dict[128] == 1 assert face_tag_dict[192] == 1 - - line_tag_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'tagnumber') + + line_tag_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='tagnumber') assert line_tag_dict[64] == 1 assert line_tag_dict[128] == 4 assert line_tag_dict[192] == 3 - - face_media_dict = createPropertyDictionary(vtkmapfile, celltype = 9, property = 'mediatype') - assert face_media_dict[-1] == 1 #PEC surface - assert face_media_dict[0] == 6 #PEC surface - assert face_media_dict[305] == 1 #SGBC surface - - line_media_dict = createPropertyDictionary(vtkmapfile, celltype = 3, property = 'mediatype') - assert line_media_dict[-0.5] == 4 #PMC line - assert line_media_dict[0.5] == 1 #PEC line - assert line_media_dict[3.5] == 3 #SGBC line - + + face_media_dict = createPropertyDictionary( + vtkmapfile, celltype=9, property='mediatype') + assert face_media_dict[-1] == 1 # PEC surface + assert face_media_dict[0] == 6 # PEC surface + assert face_media_dict[305] == 1 # SGBC surface + + line_media_dict = createPropertyDictionary( + vtkmapfile, celltype=3, property='mediatype') + assert line_media_dict[-0.5] == 4 # PMC line + assert line_media_dict[0.5] == 1 # PEC line + assert line_media_dict[3.5] == 3 # SGBC line + + def test_tagnumbers_count_bug(tmp_path): fn = CASES_FOLDER + 'tagNumber_mediaType/count_bug.fdtd.json' solver = FDTD(input_filename=fn, path_to_exe=SEMBA_EXE, @@ -201,10 +239,10 @@ def test_tagnumbers_count_bug(tmp_path): solver["materialAssociations"][1]["materialId"] = 1 solver["materialAssociations"][2]["materialId"] = 3 solver.cleanUp() - solver.run() - + solver.run() + solver["materialAssociations"][0]["materialId"] = 3 solver["materialAssociations"][1]["materialId"] = 3 solver["materialAssociations"][2]["materialId"] = 1 solver.cleanUp() - solver.run() \ No newline at end of file + solver.run() diff --git a/test/pyWrapper/test_pyWrapper.py b/test/pyWrapper/test_pyWrapper.py index f1b30795..d821b429 100644 --- a/test/pyWrapper/test_pyWrapper.py +++ b/test/pyWrapper/test_pyWrapper.py @@ -72,8 +72,9 @@ def test_read_point_probe_without_planewave(): def test_read_bulk_current_probe(): - p = Probe(OUTPUTS_FOLDER + 'twoWires.fdtd_Bulk probe_Jx_15_11_13__15_13_17.dat') - + p = Probe(OUTPUTS_FOLDER + + 'twoWires.fdtd_Bulk probe_Jx_15_11_13__15_13_17.dat') + assert p.case_name == 'twoWires' assert p.name == 'Bulk probe' assert p.type == 'bulkCurrent' @@ -88,7 +89,31 @@ def test_fdtd_set_new_folder_to_run(tmp_path): solver['general']['numberOfSteps'] = 1 solver.run() - + + +def test_fdtd_with_string_args(tmp_path): + input = os.path.join(CASES_FOLDER, 'planewave', 'pw-in-box.fdtd.json') + solver = FDTD(input, + path_to_exe=SEMBA_EXE, + run_in_folder=tmp_path, + flags='-h') + solver['general']['numberOfSteps'] = 1 + + solver.run() + + +@no_mpi_skip +def test_fdtd_with_mpi_run(tmp_path): + input = os.path.join(CASES_FOLDER, 'planewave', 'pw-in-box.fdtd.json') + solver = FDTD(input, + path_to_exe=SEMBA_EXE, + run_in_folder=tmp_path, + flags=['-h'], + mpi_command='mpirun -np 2') + solver['general']['numberOfSteps'] = 1 + + solver.run() + def test_fdtd_clean_up_after_run(tmp_path): input = CASES_FOLDER + 'planewave/pw-in-box.fdtd.json' @@ -97,7 +122,7 @@ def test_fdtd_clean_up_after_run(tmp_path): solver['general']['numberOfSteps'] = 1 solver.run() - + pn = solver.getSolvedProbeFilenames("inbox") assert os.path.isfile(pn[0]) diff --git a/test/pyWrapper/utils.py b/test/pyWrapper/utils.py index 2888d740..5339275d 100644 --- a/test/pyWrapper/utils.py +++ b/test/pyWrapper/utils.py @@ -22,12 +22,18 @@ reason="HDF5 is not available", ) +no_mpi_skip = pytest.mark.skipif( + os.getenv("SEMBA_FDTD_ENABLE_MPI") == "No", + reason="MPI is not available", +) + # Use of absolute path to avoid conflicts when changing directory. if platform == "linux": SEMBA_EXE = os.path.join(os.getcwd(), 'build', 'bin', 'semba-fdtd') elif platform == "win32": SEMBA_EXE = os.path.join(os.getcwd(), 'build', 'bin', 'semba-fdtd.exe') + TEST_DATA_FOLDER = os.path.join(os.getcwd(), 'testData/') CASES_FOLDER = os.path.join(TEST_DATA_FOLDER, 'cases/') MODELS_FOLDER = os.path.join(TEST_DATA_FOLDER, 'models/') From 1a05c9f6b21b75f3a6f4a69554d72cfb7a7173a3 Mon Sep 17 00:00:00 2001 From: Luis Manuel Diaz Angulo Date: Wed, 29 Jan 2025 11:36:13 +0100 Subject: [PATCH 7/8] Add SEMBA_FDTD_ENABLE_MPI environment variable to CI workflows --- .github/workflows/ubuntu.yml | 1 + .github/workflows/windows.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 7338f26b..c487e9b0 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -88,6 +88,7 @@ jobs: - name: Run python tests env: + SEMBA_FDTD_ENABLE_MPI: ${{ matrix.mpi }} SEMBA_FDTD_ENABLE_MTLN: ${{ matrix.mtln }} SEMBA_FDTD_ENABLE_HDF: ${{ matrix.hdf }} run: python -m pytest test/ diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 12d64a74..51c9cfc0 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -69,6 +69,7 @@ jobs: - name: Run python tests (except codemodel) env: + SEMBA_FDTD_ENABLE_MPI: ${{ matrix.mpi }} SEMBA_FDTD_ENABLE_MTLN: ${{ matrix.mtln }} SEMBA_FDTD_ENABLE_HDF: ${{ matrix.hdf }} run: python -m pytest -m 'not codemodel' test/ From c78557a65efe350fc4daf941bed6983572c3325e Mon Sep 17 00:00:00 2001 From: alberto Date: Wed, 29 Jan 2025 12:28:59 +0100 Subject: [PATCH 8/8] Modifies fillMTag to avoid access problems in parallelization --- src_main_pub/timestepping.F90 | 54 +++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/src_main_pub/timestepping.F90 b/src_main_pub/timestepping.F90 index 01f6d93a..60ebb7d5 100755 --- a/src_main_pub/timestepping.F90 +++ b/src_main_pub/timestepping.F90 @@ -1,3 +1,44 @@ +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! MIT License +! +! Copyright (c) 2023 University of Granada +! +! Permission is hereby granted, free of charge, to any person obtaining a copy +! of this software and associated documentation files (the "Software"), to deal +! in the Software without restriction, including without limitation the rights +! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +! copies of the Software, and to permit persons to whom the Software is +! furnished to do so, subject to the following conditions: +! +! The above copyright notice and this permission notice shall be included in all +! copies or substantial portions of the Software. +! +! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +! SOFTWARE. +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! SEMBA_FDTD sOLVER MODULE +! Creation date Date : April, 8, 2010 +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!__________________________________________________________________________________________________ +!******************************** REVISAR PARA PGI (CRAY) ***************************************** +!---> AdvanceMultiportE +!---> AdvanceAnisMultiportE +!---> AdvanceMultiportH +!---> AdvanceAnisMultiportH +!---> dfUpdateE +!---> dfUpdateH +!---> MinusCloneMagneticPMC +!________________________________________________________________________________________ + module Solver use fdetypes @@ -2782,8 +2823,11 @@ subroutine fillMtag(sgg,sggMiEx, sggMiEy, sggMiEz, sggMiHx, sggMiHy, sggMiHz,sgg integer(kind = 4) :: i, j, k integer(kind = INTEGERSIZEOFMEDIAMATRICES) :: medio1,medio2,medio3,medio4,medio5 logical :: mediois1,mediois2,mediois3,mediois4 - - + integer, dimension(3) :: lbx, lby, lbz + lbx = lbound(tag_numbers%face%x) + lby = lbound(tag_numbers%face%y) + lbz = lbound(tag_numbers%face%z) + mediois3=.true.; mediois4=.true. #ifdef CompileWithOpenMP !$OMP PARALLEL DO DEFAULT(SHARED) private (i,j,k,medio1,medio2,medio3,medio4,medio5,mediois1,mediois2,mediois3,mediois4) @@ -2801,7 +2845,7 @@ subroutine fillMtag(sgg,sggMiEx, sggMiEy, sggMiEz, sggMiHx, sggMiHy, sggMiHz,sgg mediois3= .true. !.not.((medio5==1).and.(((sggMiHx(i-1,j,k)/=1).or.(sggMiHx(i+1,j,k)/=1)))) !esta condicion en realidad no detecta alabeos de una celda que siendo slots son acoples de un agujerito solo en el peor de los casos if ((mediois1.or.mediois2).and.(mediois3)) then !solo lo hace con celdas de vacio porque en particular el mismo medio sgbc con diferentes orientaciones tiene distintos indices de medio y lo activaria erroneamente si lo hago para todos los medios - tag_numbers%face%x(i,j,k)=-ibset(iabs(tag_numbers%face%x(i,j,k)),3) + tag_numbers%face%x(i+lbx(1)-1,j+lbx(2)-1,k+lbx(3)-1)=-ibset(iabs(tag_numbers%face%x(i+lbx(1)-1,j+lbx(2)-1,k+lbx(3)-1)),3) !ojo no cambiar: interacciona con observation tags 141020 !151020 a efectos de mapvtk el signo importa endif End do @@ -2823,7 +2867,7 @@ subroutine fillMtag(sgg,sggMiEx, sggMiEy, sggMiEz, sggMiHx, sggMiHy, sggMiHz,sgg mediois2= (medio5==1).and.(medio3/=1).and.(medio4/=1).and.(medio1==1).and.(medio2==1) mediois3= .true. !.not.((medio5==1).and.(((sggMiHy(i,j-1,k)/=1).or.(sggMiHy(i,j+1,k)/=1)))) if ((mediois1.or.mediois2).and.(mediois3)) then - tag_numbers%face%y(i,j,k)=-ibset(iabs(tag_numbers%face%y(i,j,k)),4) + tag_numbers%face%y(i+lby(1)-1,j+lby(2)-1,k+lby(3)-1)=-ibset(iabs(tag_numbers%face%y(i+lby(1)-1,j+lby(2)-1,k+lby(3)-1)),4) endif End do End do @@ -2844,7 +2888,7 @@ subroutine fillMtag(sgg,sggMiEx, sggMiEy, sggMiEz, sggMiHx, sggMiHy, sggMiHz,sgg mediois2= (medio5==1).and.(medio3/=1).and.(medio4/=1).and.(medio1==1).and.(medio2==1) mediois3= .true. !.not.((medio5==1).and.(((sggMiHz(i,j,k-1)/=1).or.(sggMiHz(i,j,k+1)/=1)))) if ((mediois1.or.mediois2).and.(mediois3)) then - tag_numbers%face%z(i,j,k)=-ibset(iabs(tag_numbers%face%z(i,j,k)),5) + tag_numbers%face%z(i+lbz(1)-1,j+lbz(2)-1,k+lbz(3)-1)=-ibset(iabs(tag_numbers%face%z(i+lbz(1)-1,j+lbz(2)-1,k+lbz(3)-1)),5) endif End do End do