[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5089 - in /trunk/getfem: configure.ac doc/sphinx/sourc
From: |
Yves . Renard |
Subject: |
[Getfem-commits] r5089 - in /trunk/getfem: configure.ac doc/sphinx/source/biblio.rst doc/sphinx/source/userdoc/xfem.rst src/getfem_mesher.cc |
Date: |
Tue, 06 Oct 2015 13:32:23 -0000 |
Author: renard
Date: Tue Oct 6 15:32:22 2015
New Revision: 5089
URL: http://svn.gna.org/viewcvs/getfem?rev=5089&view=rev
Log:
minor changes
Modified:
trunk/getfem/configure.ac
trunk/getfem/doc/sphinx/source/biblio.rst
trunk/getfem/doc/sphinx/source/userdoc/xfem.rst
trunk/getfem/src/getfem_mesher.cc
Modified: trunk/getfem/configure.ac
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/configure.ac?rev=5089&r1=5088&r2=5089&view=diff
==============================================================================
--- trunk/getfem/configure.ac (original)
+++ trunk/getfem/configure.ac Tue Oct 6 15:32:22 2015
@@ -479,10 +479,10 @@
echo "Building with libqhull explicitly disabled";
else
AC_CHECK_LIB(qhull, qh_new_qhull)
- AC_CHECK_HEADERS(qhull/qhull.h,[useQHULL="yes"],
+ AC_CHECK_HEADERS(libqhull/qhull_a.h,[useQHULL="yes"],
[
if test "x$useQHULL" = "xyes"; then
- AC_MSG_ERROR([header files qhull/qhull.h not found. Use
--enable-qhull=no flag]);
+ AC_MSG_ERROR([header files libqhull/qhull_a.h not found. Use
--enable-qhull=no flag]);
useQHULL="no"
fi;
])
Modified: trunk/getfem/doc/sphinx/source/biblio.rst
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/doc/sphinx/source/biblio.rst?rev=5089&r1=5088&r2=5089&view=diff
==============================================================================
--- trunk/getfem/doc/sphinx/source/biblio.rst (original)
+++ trunk/getfem/doc/sphinx/source/biblio.rst Tue Oct 6 15:32:22 2015
@@ -19,7 +19,6 @@
.. [bank1983] R.E. Bank, A.H. Sherman, A. Weiser,
*Refinement algorithms and data structures for regular local mesh
refinement*, in Scientific Computing IMACS, Amsterdam, North-Holland, pp 3-17,
1983.
-
.. [ba-dv1985] K.J. Bathe, E.N. Dvorkin,
*A four-node plate bending element based on Mindlin-Reissner plate theory
and a mixed interpolation*, Internat. J. Numer. Methods Engrg., 21, 367-383,
1985.
Modified: trunk/getfem/doc/sphinx/source/userdoc/xfem.rst
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/doc/sphinx/source/userdoc/xfem.rst?rev=5089&r1=5088&r2=5089&view=diff
==============================================================================
--- trunk/getfem/doc/sphinx/source/userdoc/xfem.rst (original)
+++ trunk/getfem/doc/sphinx/source/userdoc/xfem.rst Tue Oct 6 15:32:22 2015
@@ -9,15 +9,34 @@
Level-sets, Xfem, fictitious domains, Cut-fem
=============================================
-Since v2.0, |gf| offers a certain number of facilities to support Xfem and
fictitious domain methods with a cut-fem strategy. Most of these tools have
been initially mainly developed by Julien Pommier for the study published in
[LA-PO-RE-SA2005]_.
+Since v2.0, |gf| offers a certain number of facilities to support Xfem
+and fictitious domain methods with a cut-fem strategy. Most of these
+tools have been initially mainly developed by Julien Pommier for the
+study published in [LA-PO-RE-SA2005]_.
-The implementation is a fairly large generality, based on the use of
level-sets, as suggested in [SU-CH-MO-BE2001]_ and allows simultaneous use of a
large number of level-sets which can cross.
+The implementation is a fairly large generality, based on the use of
+level-sets, as suggested in [SU-CH-MO-BE2001]_ and allows simultaneous
+use of a large number of level-sets which can cross.
-The Xfem implementation for the discretization of the jump follows the
strategy of [HA-HA2004]_ although we had no knowledge of this work during
implementation. This means that there is no degree of freedom representing the
jump across the level-set. Instead, the degrees of freedom represent the
displacement of each side of the level-set. This is essential in any way in the
presence of level-set that intersect each other because it may exist more than
two different zones of continuity inside a single element.
+The Xfem implementation for the discretization of the jump follows
+the strategy of [HA-HA2004]_ although we had no knowledge of this work
+during implementation. This means that there is no degree of freedom
+representing the jump across the level-set. Instead, the degrees of
+freedom represent the displacement of each side of the level-set.
+This is essential in any way in the presence of level-set that
+intersect each other because it may exist more than two different
+zones of continuity inside a single element.
-The cut fem strategy for fictitious domain method has been used for the first
time with |gf| for the study published in [HA-RE2009]_ where a quite simple
stabilization strategy is proposed. Here also, before knowing the existence of
the Work of E. Burman and P. Hanbo [bu-ha2010]_ on that topic.
+The cut fem strategy for fictitious domain method has been used for
+the first time with |gf| for the study published in [HA-RE2009]_ where
+a quite simple stabilization strategy is proposed. Here also, before
+knowing the existence of the Work of
+E. Burman and P. Hanbo [bu-ha2010]_ on that topic.
-The tools for Xfem have been then enriched by the PhD works of J. Larsy (see
for instance [LA-RE-SA2010]_) the one of E. Chahine (see for instance
[CH-LA-RE2011]_, [NI-RE-CH2011]_), and of S. Amdouni (see for instance
[AM-MO-RE2014]_, [AM-MO-RE2014b]_).
+The tools for Xfem have been then enriched by the PhD works
+of J. Larsy (see for instance [LA-RE-SA2010]_) the one
+of E. Chahine (see for instance [CH-LA-RE2011]_, [NI-RE-CH2011]_),
+and of S. Amdouni (see for instance [AM-MO-RE2014]_, [AM-MO-RE2014b]_).
.. important::
@@ -34,49 +53,59 @@
Some structure are defined to manipulate level-set functions defined by
piecewise polynomial function on a mesh. In the file
-:file:`getfem/getfem_levelset.h` a level-set is represented by a function
defined
-on a lagrange fem of a certain degree on a mesh. The constructor to define a
new
-|gf_ls| is the following::
+:file:`getfem/getfem_levelset.h` a level-set is represented by a
+function defined on a lagrange fem of a certain degree on a mesh.
+The constructor to define a new |gf_ls| is the following::
getfem::level_set ls(mesh, degree = 1, with_secondary = false);
where ``mesh`` is a valid mesh of type |gf_m|, ``degree`` is the degree of the
polynomials (1 is the default value), and ``with_secondary`` is a boolean whose
-default value is false. The secondary level-set is used to represent fractures
(if
-:math:`p(x)` is the primary levelset function and :math:`s(x)` is the secondary
-levelset function, the crack is defined by :math:`p(x) = 0` and :math:`s(x)
\leq
-0`: the role of the secondary is to stop the crack).
+default value is false. The secondary level-set is used to represent
+fractures (if :math:`p(x)` is the primary levelset function and
+:math:`s(x)` is the secondary levelset function, the crack is defined
+by :math:`p(x) = 0` and :math:`s(x) \leq 0`: the role of the secondary
+is to delimitate the crack).
-Each level-set function is defined by a |mf| ``mf`` and the dof values over
this
-|mf|, in a vector. The object |gf_ls| contains a |mf| and the vectors of dof
for
-the corresponding function(s). The method ``ls.value(0)`` returns the vector of
-dof for the primary level-set function, so that these values can be set. The
-method ``ls.value(1)`` returns the dof vector for the secondary level-set
function
-if any. The method ``ls.get_mesh_fem()`` returns a reference on the |gf_mf|
-object.
+Each level-set function is defined by a |mf| ``mf`` and the dof values
+over this |mf|, in a vector. The object |gf_ls| contains a |mf| and the
+vectors of dof for the corresponding function(s). The method
+``ls.value(0)`` returns the vector of dof for the primary level-set
+function, so that these values can be set. The method ``ls.value(1)``
+returns the dof vector for the secondary level-set function if any.
+The method ``ls.get_mesh_fem()`` returns a reference on the |gf_mf| object.
-Not that often in applications, the level-set function evolves thanks to an
Hamilton-Jacobi equation (for its re-initialization for instance). See the
:ref:`ud-convect` which can be used in the approximation of a Hamilton-Jacobi
equation.
+Note that, in applications, the level-set function often evolves thanks
+to an Hamilton-Jacobi equation (for its re-initialization for instance).
+See the :ref:`ud-convect` which can be used in the approximation of a
+Hamilton-Jacobi equation.
Mesh cut by level-sets
----------------------
In order to compute adapted integration methods and finite element methods to
-represent a field which is discontinuous across a level-set, a certain number
of
-pre-computations have to be done at the mesh level. The file
-:file:`getfem/getfem_mesh_level_set.h` defines the object |gf_mls| which
handles
-these pre-computations. The constructor of this object is the following::
+represent a field which is discontinuous across one or several level-sets,
+a certain number of pre-computations have to be done at the mesh level. In
+:file:`getfem/getfem_mesh_level_set.h` is defined the object |gf_mls| which
+handles these pre-computations. The constructor of this object is the
+following::
getfem::mesh_level_set mls(mesh);
-where ``mesh`` is a valid mesh of type |gf_m|. In order to indicate that the
mesh
-is cut by a level-set, one has to call the method ``mls.add_level_set(ls)``,
where
-``ls`` is an object of type |gf_ls|. An arbitrary number of level-sets can be
-added. To initialize the object or to actualize it when the value of the
level-set
-function is modified, one has to call the method ``mls.adapt()``.
+where ``mesh`` is a valid mesh of type |gf_m|. In order to indicate that
+the mesh is cut by a level-set, one has to call the method
+``mls.add_level_set(ls)``, where ``ls`` is an object of type |gf_ls|.
+An arbitrary number of level-sets can be added. To initialize the object
+or to actualize it when the value of the level-set function is modified,
+one has to call the method ``mls.adapt()``.
In particular a subdivision of each element cut by the level-set is made with
-simplices.
+simplices. Note that the whole cut-mesh is generally not conformal.
+
+The cut-mesh can be obtained for instance for post-treatment thanks to
``mls.global_cut_mesh(m)`` which fill ``m`` with the cut-mesh.
+
+
Adapted integration methods
Modified: trunk/getfem/src/getfem_mesher.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_mesher.cc?rev=5089&r1=5088&r2=5089&view=diff
==============================================================================
--- trunk/getfem/src/getfem_mesher.cc (original)
+++ trunk/getfem/src/getfem_mesher.cc Tue Oct 6 15:32:22 2015
@@ -1435,7 +1435,7 @@
// Interface with qhull
// ******************************************************************
-# ifndef GETFEM_HAVE_QHULL_QHULL_H
+# ifndef GETFEM_HAVE_LIBQHULL_QHULL_A_H
void delaunay(const std::vector<base_node> &,
gmm::dense_matrix<size_type>&) {
GMM_ASSERT1(false, "Qhull header files not installed. "
@@ -1444,18 +1444,18 @@
# else
extern "C" {
-#ifdef _MSC_VER
+// #ifdef _MSC_VER
# include <libqhull/qhull_a.h>
-#else
-# include <qhull/qhull.h>
-//# include <qhull/mem.h>
-# include <qhull/qset.h>
-//# include <qhull/geom.h>
-//# include <qhull/merge.h>
-//# include <qhull/poly.h>
-//# include <qhull/io.h>
-//# include <qhull/stat.h>
-#endif
+// #else
+// # include <qhull/qhull.h>
+// # include <qhull/mem.h>
+// # include <qhull/qset.h>
+// # include <qhull/geom.h>
+// # include <qhull/merge.h>
+// # include <qhull/poly.h>
+// # include <qhull/io.h>
+// # include <qhull/stat.h>
+// #endif
}
void delaunay(const std::vector<base_node> &pts,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5089 - in /trunk/getfem: configure.ac doc/sphinx/source/biblio.rst doc/sphinx/source/userdoc/xfem.rst src/getfem_mesher.cc,
Yves . Renard <=