getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r4887 - in /trunk/getfem: interface/tests/matlab/ src/


From: Yves . Renard
Subject: [Getfem-commits] r4887 - in /trunk/getfem: interface/tests/matlab/ src/ src/gmm/
Date: Tue, 17 Mar 2015 13:04:47 -0000

Author: renard
Date: Tue Mar 17 14:04:46 2015
New Revision: 4887

URL: http://svn.gna.org/viewcvs/getfem?rev=4887&view=rev
Log:
Still some fixes for _GLIBCXX_DEBUG model

Modified:
    trunk/getfem/interface/tests/matlab/Makefile.am
    trunk/getfem/src/getfem_fem_level_set.cc
    trunk/getfem/src/getfem_mat_elem.cc
    trunk/getfem/src/gmm/gmm_dense_matrix_functions.h
    trunk/getfem/src/gmm/gmm_lapack_interface.h

Modified: trunk/getfem/interface/tests/matlab/Makefile.am
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/tests/matlab/Makefile.am?rev=4887&r1=4886&r2=4887&view=diff
==============================================================================
--- trunk/getfem/interface/tests/matlab/Makefile.am     (original)
+++ trunk/getfem/interface/tests/matlab/Makefile.am     Tue Mar 17 14:04:46 2015
@@ -22,18 +22,22 @@
        check_slices.m \
        check_spmat.m \
        check_workspace.m \
+       demo_elasticity.m \
        demo_bilaplacian.m \
        demo_laplacian.m \
        demo_periodic_laplacian.m \
        demo_laplacian1D.m \
        demo_nonlinear_elasticity.m \
        demo_nonlinear_elasticity_anim.m \
-       demo_plasticity.m \
+       demo_plasticity.m
+       demo_dynamic_plasticity.m \
        demo_continuation.m \
        demo_crack.m \
        demo_mortar.m \
        demo_mesh_generation.m \
        demo_topological_optimization.m \
+       demo_step_by_step.m \
+       demo_Nitsche_contact_by_hand.m \
        demo_structural_optimization.m \
        demo_refine.m \
        demo_stokes_3D_tank.m \

Modified: trunk/getfem/src/getfem_fem_level_set.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_fem_level_set.cc?rev=4887&r1=4886&r2=4887&view=diff
==============================================================================
--- trunk/getfem/src/getfem_fem_level_set.cc    (original)
+++ trunk/getfem/src/getfem_fem_level_set.cc    Tue Mar 17 14:04:46 2015
@@ -97,7 +97,8 @@
     size_type s = 0;
     for (size_type i = 0; i < dofzones.size(); ++i)
       if (dofzones[i]) s += dofzones[i]->size();
-    ids.resize(dofzones.size());
+    ids.resize(0); ids.resize(dofzones.size()+1, false);
+    // cout << "dofzones.size() = " << dofzones.size() << endl;
     std::string z(common_ls_zones);
     for (dal::bv_visitor i(ls_index); !i.finished(); ++i) {
       mesher_level_set eval = mls.get_level_set(i)->
@@ -111,6 +112,7 @@
       if (!dofzones[d]) continue;
       for (mesh_level_set::zoneset::const_iterator it = dofzones[d]->begin();
           it != dofzones[d]->end(); ++it, ++cnt) {
+        // cout << "cnt = " << cnt << endl;
        ids[cnt] = false;
        for (mesh_level_set::zone::const_iterator it2 = (*it)->begin();
             it2 != (*it)->end(); ++it2) {

Modified: trunk/getfem/src/getfem_mat_elem.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_mat_elem.cc?rev=4887&r1=4886&r2=4887&view=diff
==============================================================================
--- trunk/getfem/src/getfem_mat_elem.cc (original)
+++ trunk/getfem/src/getfem_mat_elem.cc Tue Mar 17 14:04:46 2015
@@ -359,12 +359,15 @@
     void expand_product_daxpy(base_tensor &t, scalar_type J, bool first)const {
       size_type k;
       base_tensor::iterator pt = t.begin();
-      DEFINE_STATIC_THREAD_LOCAL(std::vector<base_tensor::const_iterator>,pts);
+      DEFINE_STATIC_THREAD_LOCAL(std::vector<base_tensor::const_iterator>, 
pts);
       
DEFINE_STATIC_THREAD_LOCAL(std::vector<base_tensor::const_iterator>,es_beg);
       
DEFINE_STATIC_THREAD_LOCAL(std::vector<base_tensor::const_iterator>,es_end);
       DEFINE_STATIC_THREAD_LOCAL(std::vector<scalar_type>,Vtab);
-      pts.resize(pme->size()); es_beg.resize(pme->size());
-      es_end.resize(pme->size()); Vtab.resize(pme->size());
+
+      pts.resize(0); pts.resize(pme->size()); // resize(0) necessary, do not 
remove
+      es_beg.resize(0); es_beg.resize(pme->size());
+      es_end.resize(0); es_end.resize(pme->size());
+      Vtab.resize(pme->size());
       size_type nm = 0;
       if (first) memset(&(*t.begin()), 0, t.size()*sizeof(*t.begin())); 
//std::fill(t.begin(), t.end(), 0.0);
       for (k = 0, nm = 0; k < pme->size(); ++k) {

Modified: trunk/getfem/src/gmm/gmm_dense_matrix_functions.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/gmm/gmm_dense_matrix_functions.h?rev=4887&r1=4886&r2=4887&view=diff
==============================================================================
--- trunk/getfem/src/gmm/gmm_dense_matrix_functions.h   (original)
+++ trunk/getfem/src/gmm/gmm_dense_matrix_functions.h   Tue Mar 17 14:04:46 2015
@@ -1,7 +1,7 @@
 /* -*- c++ -*- (enables emacs c++ mode) */
 /*===========================================================================
 
- Copyright (C) 2014-2014 Konstantinos Poulios
+ Copyright (C) 2014-2015 Konstantinos Poulios
 
  This file is a part of GETFEM++
 
@@ -93,7 +93,12 @@
                 "Matrix square root requires a square matrix");
     gmm::resize(SQRTMA, gmm::mat_nrows(A), gmm::mat_ncols(A));
     dense_matrix<std::complex<T> > S(A), Q(A), TMP(A);
+    #if defined(GMM_USES_LAPACK)
     schur(TMP, S, Q);
+    #else
+    GMM_ASSERT1(false, "Please recompile with lapack and blas librairies "
+                "to access to use sqrtm matrix function.");
+    #endif
     sqrtm_utri_inplace(S);
     gmm::mult(Q, S, TMP);
     gmm::mult(TMP, gmm::transposed(Q), SQRTMA);
@@ -251,7 +256,13 @@
     GMM_ASSERT1(n == gmm::mat_ncols(A),
                 "Matrix logarithm is not defined for non-square matrices");
     dense_matrix<T> S(A), Q(A);
+    #if defined(GMM_USES_LAPACK)
     schur(A, S, Q); // A = Q * S * Q^T
+    #else
+    GMM_ASSERT1(false, "Please recompile with lapack and blas librairies "
+                "to access to use logm matrix function.");
+    #endif
+
     bool convert_to_complex(false);
     if (!is_complex(T()))
       for (size_type i=0; i < n-1; ++i)

Modified: trunk/getfem/src/gmm/gmm_lapack_interface.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/gmm/gmm_lapack_interface.h?rev=4887&r1=4886&r2=4887&view=diff
==============================================================================
--- trunk/getfem/src/gmm/gmm_lapack_interface.h (original)
+++ trunk/getfem/src/gmm/gmm_lapack_interface.h Tue Mar 17 14:04:46 2015
@@ -348,7 +348,7 @@
     int lwork = 8*n, sdim = 0, liwork = 1;                              \
     std::vector<base_type> work(lwork), wr(n), wi(n);                   \
     std::vector<int> iwork(liwork);                                     \
-    std::vector<int> bwork(0);                                          \
+    std::vector<int> bwork(1);                                          \
     resize(S, n, n); copy(A, S);                                        \
     resize(Q, n, n);                                                    \
     base_type rconde(0), rcondv(0);                                     \
@@ -371,7 +371,7 @@
     int lwork = 8*n, sdim = 0;                                          \
     std::vector<base_type::value_type> rwork(lwork);                    \
     std::vector<base_type> work(lwork), w(n);                           \
-    std::vector<int> bwork(0);                                          \
+    std::vector<int> bwork(1);                                          \
     resize(S, n, n); copy(A, S);                                        \
     resize(Q, n, n);                                                    \
     base_type rconde(0), rcondv(0);                                     \




reply via email to

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