From 4c3da41723d8c8644516393d8e266dcbbeb4f08b Mon Sep 17 00:00:00 2001 From: Boris Martin <boris.martin.be@gmail.com> Date: Mon, 20 Feb 2023 09:19:23 +0000 Subject: [PATCH] Refactoring of Configuration::mesh() where a default implementation is usually good enough. --- common/configuration.cpp | 25 +++++++++++++++++++ common/configuration.h | 2 +- .../configuration/circular_acquisition.cpp | 19 -------------- .../layeredvolume_acquisition.cpp | 20 --------------- .../configuration/surface_acquisition.cpp | 19 +------------- specific/configuration/volume_acquisition.cpp | 20 --------------- 6 files changed, 27 insertions(+), 78 deletions(-) diff --git a/common/configuration.cpp b/common/configuration.cpp index 7a930cc..e0f21fe 100644 --- a/common/configuration.cpp +++ b/common/configuration.cpp @@ -3,11 +3,36 @@ //GmshFWI Library #include "configuration.h" +#include <gmsh.h> + +namespace gmodel = gmsh::model; +namespace factory = gmsh::model::geo; using namespace gmshfem; using namespace gmshfem::common; using namespace gmshfem::domain; +void ConfigurationInterface::mesh() const +{ + msg::print << "Generate meshes" << msg::endl; + gmsh::option::setNumber("General.Terminal", 1); + + gmodel::add(_name); + if (!_remesh) + { + gmsh::open(_name + ".msh"); + return; + } + + wave_mesh(); + data_mesh(); + + factory::synchronize(); + gmodel::mesh::generate(); + + gmsh::write(_name + ".msh"); +} + bool ConfigurationInterface::recIsValid(unsigned int shot,unsigned int rec) const { if( !(shot<_ns) && !(rec<nr(shot)) ) diff --git a/common/configuration.h b/common/configuration.h index 881b0d8..8818d6b 100644 --- a/common/configuration.h +++ b/common/configuration.h @@ -51,7 +51,7 @@ public: }; virtual ~ConfigurationInterface() {delete _parametrization;}; - virtual void mesh() const = 0; + virtual void mesh() const; virtual double area() const = 0; virtual double data_area() const {return gmshfem::post::integrate(1._d_sf,_data_omega,"Gauss0");}; virtual double datapoint_area() const = 0; diff --git a/specific/configuration/circular_acquisition.cpp b/specific/configuration/circular_acquisition.cpp index beb2b8a..727e6fb 100644 --- a/specific/configuration/circular_acquisition.cpp +++ b/specific/configuration/circular_acquisition.cpp @@ -264,26 +264,7 @@ namespace circular_acquisition } } - void Configuration::mesh() const - { - msg::print << "Generate meshes" << msg::endl; - gmsh::option::setNumber("General.Terminal", 1); - - gmodel::add(_name); - if(!_remesh) - { - gmsh::open(_name+".msh"); - return; - } - wave_mesh(); - data_mesh(); - - factory::synchronize(); - gmodel::mesh::generate(); - - gmsh::write(_name+".msh"); - } void Configuration::wave_mesh() const { int p0 = factory::addPoint(0., 0., 0., _h); diff --git a/specific/configuration/layeredvolume_acquisition.cpp b/specific/configuration/layeredvolume_acquisition.cpp index bbcf3c8..0acdab1 100644 --- a/specific/configuration/layeredvolume_acquisition.cpp +++ b/specific/configuration/layeredvolume_acquisition.cpp @@ -477,26 +477,6 @@ namespace layeredvolume_acquisition } } - void Configuration::mesh() const - { - msg::print << "Generate meshes" << msg::endl; - gmsh::option::setNumber("General.Terminal", 1); - - gmodel::add(_name); - if(!_remesh) - { - gmsh::open(_name+".msh"); - return; - } - - wave_mesh(); - data_mesh(); - - factory::synchronize(); - gmodel::mesh::generate(); - - gmsh::write(_name+".msh"); - } void Configuration::wave_mesh() const { std::vector<int> pl1(_layercoord1.size()); diff --git a/specific/configuration/surface_acquisition.cpp b/specific/configuration/surface_acquisition.cpp index 40cb28b..0a81f15 100644 --- a/specific/configuration/surface_acquisition.cpp +++ b/specific/configuration/surface_acquisition.cpp @@ -265,24 +265,7 @@ namespace surface_acquisition } } - void Configuration::mesh() const - { - msg::print << "Generate meshes" << msg::endl; - gmsh::option::setNumber("General.Terminal", 1); - gmodel::add(_name); - if(!_remesh) - { - gmsh::open(_name+".msh"); - return; - } - wave_mesh(); - data_mesh(); - - factory::synchronize(); - gmodel::mesh::generate(); - - gmsh::write(_name+".msh"); - } + void Configuration::wave_mesh() const { double Le0 = (_L - _Ler)/2.; diff --git a/specific/configuration/volume_acquisition.cpp b/specific/configuration/volume_acquisition.cpp index e4b2a78..2ed4e1e 100644 --- a/specific/configuration/volume_acquisition.cpp +++ b/specific/configuration/volume_acquisition.cpp @@ -341,26 +341,6 @@ namespace volume_acquisition } } - void Configuration::mesh() const - { - msg::print << "Generate meshes" << msg::endl; - gmsh::option::setNumber("General.Terminal", 1); - - gmodel::add(_name); - if(!_remesh) - { - gmsh::open(_name+".msh"); - return; - } - - wave_mesh(); - data_mesh(); - - factory::synchronize(); - gmodel::mesh::generate(); - - gmsh::write(_name+".msh"); - } void Configuration::wave_mesh() const { int pb1 = factory::addPoint(0., 0., 0., _h); -- GitLab