getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r5153 - in /trunk/getfem: contrib/level_set_contact/ sr


From: Yves . Renard
Subject: [Getfem-commits] r5153 - in /trunk/getfem: contrib/level_set_contact/ src/ src/getfem/
Date: Fri, 27 Nov 2015 15:39:41 -0000

Author: renard
Date: Fri Nov 27 16:39:40 2015
New Revision: 5153

URL: http://svn.gna.org/viewcvs/getfem?rev=5153&view=rev
Log:
minor modifications

Modified:
    trunk/getfem/contrib/level_set_contact/contact_2D.param
    trunk/getfem/src/getfem/getfem_interpolated_fem.h
    trunk/getfem/src/getfem/getfem_mat_elem.h
    trunk/getfem/src/getfem/getfem_mat_elem_type.h
    trunk/getfem/src/getfem_assembling_tensors.cc
    trunk/getfem/src/getfem_fem.cc
    trunk/getfem/src/getfem_level_set_contact.cc

Modified: trunk/getfem/contrib/level_set_contact/contact_2D.param
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/contrib/level_set_contact/contact_2D.param?rev=5153&r1=5152&r2=5153&view=diff
==============================================================================
--- trunk/getfem/contrib/level_set_contact/contact_2D.param     (original)
+++ trunk/getfem/contrib/level_set_contact/contact_2D.param     Fri Nov 27 
16:39:40 2015
@@ -32,7 +32,7 @@
 LAMBDA_MASTER = 110.0;
 MU_MASTER = 70.0;
 %
-%

+%
 % Slave contact body
 DIVxS = 20;
 DIVyS = 

Modified: trunk/getfem/src/getfem/getfem_interpolated_fem.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_interpolated_fem.h?rev=5153&r1=5152&r2=5153&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_interpolated_fem.h   (original)
+++ trunk/getfem/src/getfem/getfem_interpolated_fem.h   Fri Nov 27 16:39:40 2015
@@ -180,7 +180,8 @@
                            bool store_val = true);
 
   /** release an interpolated fem */
-  inline void del_interpolated_fem(pfem pf) { dal::del_stored_object(pf); }
+  inline void del_interpolated_fem(const pfem &pf)
+  { dal::del_stored_object(pf); }
 
   
 }  /* end of namespace getfem.                                            */

Modified: trunk/getfem/src/getfem/getfem_mat_elem.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_mat_elem.h?rev=5153&r1=5152&r2=5153&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_mat_elem.h   (original)
+++ trunk/getfem/src/getfem/getfem_mat_elem.h   Fri Nov 27 16:39:40 2015
@@ -132,9 +132,27 @@
   pmat_elem_computation mat_elem(pmat_elem_type pm, 
                                 pintegration_method pi,
                                 bgeot::pgeometric_trans pg,
-                                 bool prefer_comp_on_real_element = false);
+                                 bool prefer_comp_on_real_element=false);
 
+  class mat_elem_pool {
+    std::set<pmat_elem_computation> mat_elems;
 
+  public :
+    pmat_elem_computation operator()(pmat_elem_type pm, 
+                                    pintegration_method pi,
+                                    bgeot::pgeometric_trans pg,
+                                    bool prefer_comp_on_real_element=false) {
+      pmat_elem_computation p=mat_elem(pm, pi, pg, 
prefer_comp_on_real_element);
+      mat_elems.insert(p);
+      return p;
+    }
+    void clear(void) {
+      for (auto it = mat_elems.begin(); it != mat_elems.end(); ++it)
+       del_stored_object(*it, true);
+      mat_elems.clear();
+    }
+    ~mat_elem_pool() { clear(); }
+  };
 }  /* end of namespace getfem.                                             */
 
 

Modified: trunk/getfem/src/getfem/getfem_mat_elem_type.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_mat_elem_type.h?rev=5153&r1=5152&r2=5153&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_mat_elem_type.h      (original)
+++ trunk/getfem/src/getfem/getfem_mat_elem_type.h      Fri Nov 27 16:39:40 2015
@@ -110,6 +110,7 @@
     bgeot::multi_index sizes(size_type) const;
     bgeot::multi_index &get_mi(void) { return mi; }
     const bgeot::multi_index &get_mi(void) const { return mi; }
+    bool is_buil_on_the_fly(void);
   };
 
    /** @name functions on elementary matrix descriptions

Modified: trunk/getfem/src/getfem_assembling_tensors.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_assembling_tensors.cc?rev=5153&r1=5152&r2=5153&view=diff
==============================================================================
--- trunk/getfem/src/getfem_assembling_tensors.cc       (original)
+++ trunk/getfem/src/getfem_assembling_tensors.cc       Fri Nov 27 16:39:40 2015
@@ -510,6 +510,7 @@
 
   class ATN_computed_tensor : public ATN_tensor {
     mf_comp_vect mfcomp;
+    mat_elem_pool mep;
     pmat_elem_computation pmec;
     pmat_elem_type pme;
     pintegration_method pim;
@@ -874,7 +875,7 @@
       }
       if (shape_updated_ || fem_changed || pgt != pgt2 || pim != pim2) {
         pgt = pgt2; pim = pim2;
-        pmec = mat_elem(pme, pim, pgt, has_inline_reduction);
+        pmec = mep(pme, pim, pgt, has_inline_reduction);
       }
     }
 

Modified: trunk/getfem/src/getfem_fem.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_fem.cc?rev=5153&r1=5152&r2=5153&view=diff
==============================================================================
--- trunk/getfem/src/getfem_fem.cc      (original)
+++ trunk/getfem/src/getfem_fem.cc      Fri Nov 27 16:39:40 2015
@@ -3478,10 +3478,8 @@
   }
 
   void fem_precomp_pool::clear(void) {
-    for (std::set<pfem_precomp>::iterator it = precomps.begin();
-        it != precomps.end(); ++it) {
+    for (auto it = precomps.begin(); it != precomps.end(); ++it)
       del_stored_object(*it, true);
-    }
     precomps.clear();
   }
 

Modified: trunk/getfem/src/getfem_level_set_contact.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_level_set_contact.cc?rev=5153&r1=5152&r2=5153&view=diff
==============================================================================
--- trunk/getfem/src/getfem_level_set_contact.cc        (original)
+++ trunk/getfem/src/getfem_level_set_contact.cc        Fri Nov 27 16:39:40 2015
@@ -340,16 +340,12 @@
        const std::string& _mult_name,
        size_type _GIVEN_CONTACT_REGION) :
 
-master_cb(underformed_mcb),
+        master_cb(underformed_mcb),
        slave_cb(underformed_scb),
        mult_name(_mult_name),
        GIVEN_CONTACT_REGION(_GIVEN_CONTACT_REGION),
 
        
ACTIVE_CONTACT_REGION(getfem::mesh_region::free_region_id(master_cb.get_mesh())),
-       pmim_contact(0),
-       ifem_srf(0),
-       pinterpolated_fem(0),
-       pinterpolated_fem_U(0),
        members_are_computed(false),
        init_cont_detect_done(false)
 
@@ -524,9 +520,13 @@
 
        //pinterpolated_fem for level set
        pinterpolated_fem = std::make_shared<mesh_fem>(master_cb.get_mesh());
-       if (ifem_srf.get()!=0) getfem::del_interpolated_fem(ifem_srf);
-       ifem_srf=getfem::new_interpolated_fem(
-               slave_cb.get_ls_mesh_fem(),*pmim_contact);
+
+       pinterpolated_fem_U = std::shared_ptr<mesh_fem>();
+
+       if (ifem_srf.get()) getfem::del_interpolated_fem(ifem_srf);
+
+       ifem_srf = getfem::new_interpolated_fem(slave_cb.get_ls_mesh_fem(),
+                                               *pmim_contact, 0, 
dal::bit_vector(), false);
        pinterpolated_fem->set_finite_element(
                
master_cb.get_mesh().region(ACTIVE_CONTACT_REGION).index(),ifem_srf);
        pinterpolated_fem->set_qdim(1);




reply via email to

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