diff --git a/common/configuration.cpp b/common/configuration.cpp index 7a930cc4c62ee5a71fb23ac88866a2874421311d..e0f21feb9b6a30a1066927c8b6ea521cc27fbc26 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 881b0d8807f32b02afa44d6dcd6850f24f42b511..8818d6b341c14aebcc1dee9fb91e28cac8b91a17 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 beb2b8aac2268a94740df0c854c1e23f6df4cf47..727e6fb53806d8b49965777d1aefb70babaf4cb6 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 bbcf3c869e0609ed08ff1df328edd62b079a3428..0acdab1a3b0126e5ad304a49d4ee79107737d72f 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 40cb28b756b98243e47e2fc88069a8fa7eb54661..0a81f151044eba1020d48131d49c5578c27c307e 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 e4b2a78adc9a99f3bfbaa93b63f1019b445babdd..2ed4e1e516130c8e7989e2d44ecbcd761883534a 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);