getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] (no subject)


From: Konstantinos Poulios
Subject: [Getfem-commits] (no subject)
Date: Mon, 20 Nov 2023 18:08:45 -0500 (EST)

branch: master
commit be1bab317bedf31b7a0ff64f3ff41602f8ef8754
Author: Konstantinos Poulios <logari81@gmail.com>
AuthorDate: Tue Nov 21 00:06:24 2023 +0100

    Allow calling adapt() from scripting API for mesh_fem_sum and 
mesh_fem_product
---
 interface/src/gf_mesh_fem_set.cc | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/interface/src/gf_mesh_fem_set.cc b/interface/src/gf_mesh_fem_set.cc
index abf187ef..735ad916 100644
--- a/interface/src/gf_mesh_fem_set.cc
+++ b/interface/src/gf_mesh_fem_set.cc
@@ -24,6 +24,7 @@
 #include <getfem/getfem_partial_mesh_fem.h>
 #include <gmm/gmm_range_basis.h>
 #include <getfem/getfem_mesh_fem_level_set.h>
+#include <getfem/getfem_mesh_fem_sum.h>
 #include <getfem/getfem_mesh_fem_product.h>
 #include <getfem/getfem_fem.h>
 
@@ -266,7 +267,7 @@ void gf_mesh_fem_set(getfemint::mexargs_in& m_in,
        dal::bit_vector doflst = in.pop().to_bit_vector();
        dal::bit_vector rcvlst;
        if (in.remaining()) rcvlst = in.pop().to_bit_vector();
-       
+
        getfem::partial_mesh_fem *ppmf
        = dynamic_cast<getfem::partial_mesh_fem *>(mf);
        if (!ppmf) THROW_BADARG("The command 'set partial' can only be "
@@ -279,11 +280,21 @@ void gf_mesh_fem_set(getfemint::mexargs_in& m_in,
       change of the levelset function. @*/
     sub_command
       ("adapt", 0, 0, 0, 0,
+       getfem::mesh_fem_sum *mfsum
+         = dynamic_cast<getfem::mesh_fem_sum *>(mf);
+       getfem::mesh_fem_product *mfprod
+         = dynamic_cast<getfem::mesh_fem_product *>(mf);
        getfem::mesh_fem_level_set *mfls
-       = dynamic_cast<getfem::mesh_fem_level_set *>(mf);
-       if (!mfls) THROW_BADARG("The command 'adapt' can only be "
+         = dynamic_cast<getfem::mesh_fem_level_set *>(mf);
+       if (mfsum)
+         mfsum->adapt();
+       else if (mfprod)
+         mfprod->adapt();
+       else if (mfls)
+         mfls->adapt();
+       else
+        THROW_BADARG("The command 'adapt' can only be "
                                "applied to a mesh_fem_level_set object");
-       mfls->adapt();
        );
 
     /*@SET ('set enriched dofs', @ivec DOFs)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]