[Pkg-scicomp-commits] [SCM] MAdLib, a mesh adaptation library. branch, master, updated. debian/1.2.2-1-33-gaf24cc4
Christophe Prud'homme
prudhomm at debian.org
Sat Oct 17 19:39:57 UTC 2009
The following commit has been merged in the master branch:
commit af24cc43eb37257a50a0dddda16d00fbf665246b
Author: Christophe Prud'homme <prudhomm at debian.org>
Date: Sat Oct 17 21:38:44 2009 +0200
cleanup
?
diff --git a/debian/libmadlib-dbg/DEBIAN/control b/debian/libmadlib-dbg/DEBIAN/control
deleted file mode 100644
index 5bd9c1b..0000000
--- a/debian/libmadlib-dbg/DEBIAN/control
+++ /dev/null
@@ -1,30 +0,0 @@
-Package: libmadlib-dbg
-Source: madlib
-Version: 1.3.0-1
-Architecture: amd64
-Maintainer: Christophe Prud'homme <prudhomm at debian.org>
-Installed-Size: 7644
-Depends: libmadlib
-Section: debug
-Priority: extra
-Homepage: http://www.madlib.be
-Description: mesh adaptation library
- Debug symbols for MAdLib.
- .
- MAdLib is a library that performs global node repositioning and mesh
- adaptation by local mesh modifications on tetrahedral or triangular
- meshes. It is designed to frequently adapt the mesh in transient
- computations. MAdLib is written in C++.
- .
- The adaptation procedure is driven by two objectives:
- .
- make the edge lengths as close as possible to a (non-homogenous)
- prescribed length,
- .
- maintain a satisfying element quality everywhere.
- .
- MAdLib can be used in transient computations in order to maintain a
- satisfying element quality (moving boundaries, multiphase flows with
- interface tracking, ...) or/and to apply selective refinements and
- coarsenings (error estimators based, interface capturing: shocks,
- free surfaces, ...).
diff --git a/debian/libmadlib-dbg/DEBIAN/md5sums b/debian/libmadlib-dbg/DEBIAN/md5sums
deleted file mode 100644
index 6c1ff9b..0000000
--- a/debian/libmadlib-dbg/DEBIAN/md5sums
+++ /dev/null
@@ -1,4 +0,0 @@
-46baf8c2bfcfa7d9688f61e72ec8d7ec usr/lib/debug/usr/lib/libMAdLib.so.0.0.0
-fe7617a634e1f3447736b5d7432f37af usr/share/doc/libmadlib-dbg/changelog.Debian.gz
-05ea5986bb337a57328131d022139276 usr/share/doc/libmadlib-dbg/copyright
-8b7defd24173f33f1667becd07660d53 usr/share/doc/libmadlib-dbg/README
diff --git a/debian/libmadlib-dbg/usr/lib/debug/usr/lib/libMAdLib.so.0.0.0 b/debian/libmadlib-dbg/usr/lib/debug/usr/lib/libMAdLib.so.0.0.0
deleted file mode 100644
index b521b14..0000000
Binary files a/debian/libmadlib-dbg/usr/lib/debug/usr/lib/libMAdLib.so.0.0.0 and /dev/null differ
diff --git a/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/README b/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/README
deleted file mode 100644
index 63bf558..0000000
--- a/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/README
+++ /dev/null
@@ -1,43 +0,0 @@
-MAdLib - README file.
-
-See the Copyright.txt, License.txt and Credits.txt files for copyright,
-license and authors informations. You should have received a copy of
-these files along with MAdLib. If not, see <http://www.madlib.be/license/>.
-
-Please report bugs and problems to <contrib at madlib.be>.
-
-To compile and install the MAdLib library, you should first run the
-following command:
- make -f Makefile.svn
-This will generate the 'configure' and 'Makefile.in' files required in the
-second step. You need the GNU Autotools (aclocal, autoconf, automake) to
-generate these files.
-
-You can then compile the library by typing
- ./configure [opts];
- make;
- make install;
-
-If you want to compile and install some benchmark executables, type
- ./configure --enable-benchmarks [opts];
- make install-bench;
-
-The documentation is generated and installed automatically with the
-previous compilations if you have Doxygen installed but you can also
-generate it (in doc/) by
- make doc;
-
-The pkgconfig file MAdLib.pc is generated and installed by
- make pc
-
-Note that the configure and make commands can be called from any
-third-part directory. All files built during the compilation
-processes will be stored in that directory, except the documentation.
-
-Also note that you need a linear system solver for the benchmarks that include
-the global node repositioning algorithm, like 'moveIt/example/tube' (for inst. PETSc)
-and a library to compute the distance to a cloud of points (for inst. ANN: add
---enable-ann in the configure command) for benchmarks including local size fields.
-
-To see what options are available, type
- ./configure --help
diff --git a/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/changelog.Debian.gz b/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/changelog.Debian.gz
deleted file mode 100644
index d8392dd..0000000
Binary files a/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/changelog.Debian.gz and /dev/null differ
diff --git a/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/copyright b/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/copyright
deleted file mode 100644
index 6c65adb..0000000
--- a/debian/libmadlib-dbg/usr/share/doc/libmadlib-dbg/copyright
+++ /dev/null
@@ -1,30 +0,0 @@
-This package was debianized by Christophe Prud'homme <prudhomm at debian.org> on
-Tue, 04 Aug 2009 07:26:08 +0200.
-
-It was downloaded from <url:http://www.madlib.be>
-
-Upstream Authors:
-
- Jean-François Remacle <jean-francois.remacle at uclouvain.be>,
- Gaëtan Compere <gaetan.compere at uclouvain.be>
-
-Copyright:
-
- (C) 2008-2009 by the Université catholique de Louvain (UCL), Belgium
-
-
-License:
-
- /usr/share/common-licenses/LGPL-3
-
-The Debian packaging is:
-
- Copyright (C) 2009 Christophe Prud'homme <prudhomm at debian.org>
-
-and is licensed under the GPL version 3,
-see `/usr/share/common-licenses/GPL-3'.
-
-
-ANN (in Contrib/ANN) /usr/share/common-licenses/LGPL-2
-Mathex (in Contrib/Mathex) /usr/share/common-licenses/LGPL-2
-
diff --git a/debian/libmadlib-dev/DEBIAN/control b/debian/libmadlib-dev/DEBIAN/control
deleted file mode 100644
index 9a5cf4c..0000000
--- a/debian/libmadlib-dev/DEBIAN/control
+++ /dev/null
@@ -1,30 +0,0 @@
-Package: libmadlib-dev
-Source: madlib
-Version: 1.3.0-1
-Architecture: amd64
-Maintainer: Christophe Prud'homme <prudhomm at debian.org>
-Installed-Size: 2940
-Depends: libmadlib
-Section: libdevel
-Priority: extra
-Homepage: http://www.madlib.be
-Description: mesh adaptation library
- Development files (headers, so and static libraries) for MAdLib.
- .
- MAdLib is a library that performs global node repositioning and mesh
- adaptation by local mesh modifications on tetrahedral or triangular
- meshes. It is designed to frequently adapt the mesh in transient
- computations. MAdLib is written in C++.
- .
- The adaptation procedure is driven by two objectives:
- .
- make the edge lengths as close as possible to a (non-homogenous)
- prescribed length,
- .
- maintain a satisfying element quality everywhere.
- .
- MAdLib can be used in transient computations in order to maintain a
- satisfying element quality (moving boundaries, multiphase flows with
- interface tracking, ...) or/and to apply selective refinements and
- coarsenings (error estimators based, interface capturing: shocks,
- free surfaces, ...).
diff --git a/debian/libmadlib-dev/DEBIAN/md5sums b/debian/libmadlib-dev/DEBIAN/md5sums
deleted file mode 100644
index 89ecd30..0000000
--- a/debian/libmadlib-dev/DEBIAN/md5sums
+++ /dev/null
@@ -1,31 +0,0 @@
-b518627c0b06799843986461e42904a1 usr/lib/libMAdLib.a
-101ffc70016589064d4d39c6175cf80b usr/lib/libMAdLib.la
-fe7617a634e1f3447736b5d7432f37af usr/share/doc/libmadlib-dev/changelog.Debian.gz
-05ea5986bb337a57328131d022139276 usr/share/doc/libmadlib-dev/copyright
-8b7defd24173f33f1667becd07660d53 usr/share/doc/libmadlib-dev/README
-fabacf5f28d9e8e821382ec868fdbb87 usr/include/MAdLib/AnalyticalSField.h
-1d6a85d1328d1631aa59f9e681e0b261 usr/include/MAdLib/ANNperf.h
-1946ff138ef7cc31620031b94d353694 usr/include/MAdLib/DistanceFunction.h
-2af74a1c2eb2849b472ba9d803096f23 usr/include/MAdLib/MeshDataBaseComm.h
-456f45c370189d3e6dd56cdc4756311f usr/include/MAdLib/MeshDataBaseCommPeriodic.h
-2e5aa9297b9c935e4ab50827c0199622 usr/include/MAdLib/MobileObject.h
-415ce538ac2e26d090fa50f5981e509e usr/include/MAdLib/SizeField.h
-9d17e647a8d6e66ecb26603cee2791be usr/include/MAdLib/LocalSizeField.h
-56ef743fee6721c778589c64b709abe7 usr/include/MAdLib/MAdOperations.h
-954e8021e597db1123f538e007f4634d usr/include/MAdLib/MAdConfig.h
-6dfc90ba3da17ef0d5f91487a0cbbf18 usr/include/MAdLib/AdaptInterface.h
-c4666a7d5db460237bd3a386471c3d6e usr/include/MAdLib/MAdLib.h
-544679adcaa40b0d0b06bef5852ce442 usr/include/MAdLib/MshTags.h
-da06acc670e13178b3d99d1d060fbbd8 usr/include/MAdLib/MAdOutput.h
-da5a654c04513ccabe9600b8753c270c usr/include/MAdLib/BackgroundSF.h
-50a2fc84e171afe147dc766538413138 usr/include/MAdLib/SizeFieldBase.h
-bded3a992b0412a059c86a88648ba107 usr/include/MAdLib/ANNx.h
-38465b796d5d7c1b040d4b6a66c664dc usr/include/MAdLib/MeshDataBaseInterface.h
-c97bd0f728c54b603c203fbe8e613757 usr/include/MAdLib/PWLinearSField.h
-5b1345996d7eba0a762fa1c0a72a9972 usr/include/MAdLib/DiscreteSF.h
-d29121057d9ea9a71e25ec53f86e704d usr/include/MAdLib/ModelInterface.h
-00a646a79a90fe45c84e471e72bd2392 usr/include/MAdLib/ANN.h
-d1662cfda880f7a795ca487911445ff0 usr/include/MAdLib/CheckMesh.h
-ac66ed5ebb3e5974926a8c4547932b7e usr/include/MAdLib/CallbackDefinition.h
-8591b6e4184f3d23120c8792ca3a8778 usr/include/MAdLib/MeshDataBaseParallelInterface.h
-73e0bbe30bbe80acf08edc6b58d3dbe8 usr/include/MAdLib/DistanceToPoints.h
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/ANN.h b/debian/libmadlib-dev/usr/include/MAdLib/ANN.h
deleted file mode 100644
index ca8146a..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/ANN.h
+++ /dev/null
@@ -1,829 +0,0 @@
-//----------------------------------------------------------------------
-// File: ANN.h
-// Programmer: Sunil Arya and David Mount
-// Last modified: 05/03/05 (Release 1.1)
-// Description: Basic include file for approximate nearest
-// neighbor searching.
-//----------------------------------------------------------------------
-// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and
-// David Mount. All Rights Reserved.
-//
-// This software and related documentation is part of the
-// Approximate Nearest Neighbor Library (ANN).
-//
-// Permission to use, copy, and distribute this software and its
-// documentation is hereby granted free of charge, provided that
-// (1) it is not a component of a commercial product, and
-// (2) this notice appears in all copies of the software and
-// related documentation.
-//
-// The University of Maryland (U.M.) and the authors make no representations
-// about the suitability or fitness of this software for any purpose. It is
-// provided "as is" without express or implied warranty.
-//----------------------------------------------------------------------
-// History:
-// Revision 0.1 03/04/98
-// Initial release
-// Revision 1.0 04/01/05
-// Added copyright and revision information
-// Added ANNcoordPrec for coordinate precision.
-// Added methods theDim, nPoints, maxPoints, thePoints to ANNpointSet.
-// Cleaned up C++ structure for modern compilers
-// Revision 1.1 05/03/05
-// Added fixed-radius k-NN searching
-//----------------------------------------------------------------------
-
-//----------------------------------------------------------------------
-// ANN - approximate nearest neighbor searching
-// ANN is a library for approximate nearest neighbor searching,
-// based on the use of standard and priority search in kd-trees
-// and balanced box-decomposition (bbd) trees. Here are some
-// references to the main algorithmic techniques used here:
-//
-// kd-trees:
-// Friedman, Bentley, and Finkel, ``An algorithm for finding
-// best matches in logarithmic expected time,'' ACM
-// Transactions on Mathematical Software, 3(3):209-226, 1977.
-//
-// Priority search in kd-trees:
-// Arya and Mount, ``Algorithms for fast vector quantization,''
-// Proc. of DCC '93: Data Compression Conference, eds. J. A.
-// Storer and M. Cohn, IEEE Press, 1993, 381-390.
-//
-// Approximate nearest neighbor search and bbd-trees:
-// Arya, Mount, Netanyahu, Silverman, and Wu, ``An optimal
-// algorithm for approximate nearest neighbor searching,''
-// 5th Ann. ACM-SIAM Symposium on Discrete Algorithms,
-// 1994, 573-582.
-//----------------------------------------------------------------------
-
-#ifndef ANN_H
-#define ANN_H
-
-#ifdef WIN33
- //----------------------------------------------------------------------
- // For Microsoft Visual C++, externally accessible symbols must be
- // explicitly indicated with DLL_API, which is somewhat like "extern."
- //
- // The following ifdef block is the standard way of creating macros
- // which make exporting from a DLL simpler. All files within this DLL
- // are compiled with the DLL_EXPORTS preprocessor symbol defined on the
- // command line. In contrast, projects that use (or import) the DLL
- // objects do not define the DLL_EXPORTS symbol. This way any other
- // project whose source files include this file see DLL_API functions as
- // being imported from a DLL, wheras this DLL sees symbols defined with
- // this macro as being exported.
- //----------------------------------------------------------------------
- #ifdef DLL_EXPORTS
- #define DLL_API __declspec(dllexport)
- #else
- #define DLL_API __declspec(dllimport)
- #endif
- //----------------------------------------------------------------------
- // DLL_API is ignored for all other systems
- //----------------------------------------------------------------------
-#else
- #define DLL_API
-#endif
-
-//----------------------------------------------------------------------
-// basic includes
-//----------------------------------------------------------------------
-
-#include <cmath> // math includes
-#include <iostream> // I/O streams
-
-//----------------------------------------------------------------------
-// Limits
-// There are a number of places where we use the maximum double value as
-// default initializers (and others may be used, depending on the
-// data/distance representation). These can usually be found in limits.h
-// (as LONG_MAX, INT_MAX) or in float.h (as DBL_MAX, FLT_MAX).
-//
-// Not all systems have these files. If you are using such a system,
-// you should set the preprocessor symbol ANN_NO_LIMITS_H when
-// compiling, and modify the statements below to generate the
-// appropriate value. For practical purposes, this does not need to be
-// the maximum double value. It is sufficient that it be at least as
-// large than the maximum squared distance between between any two
-// points.
-//----------------------------------------------------------------------
-#ifdef ANN_NO_LIMITS_H // limits.h unavailable
- #include <cvalues> // replacement for limits.h
- const double ANN_DBL_MAX = MAXDOUBLE; // insert maximum double
-#else
- #include <climits>
- #include <cfloat>
- const double ANN_DBL_MAX = DBL_MAX;
-#endif
-
-#define ANNversion "1.0" // ANN version and information
-#define ANNversionCmt ""
-#define ANNcopyright "David M. Mount and Sunil Arya"
-#define ANNlatestRev "Mar 1, 2005"
-
-//----------------------------------------------------------------------
-// ANNbool
-// This is a simple boolean type. Although ANSI C++ is supposed
-// to support the type bool, some compilers do not have it.
-//----------------------------------------------------------------------
-
-enum ANNbool {ANNfalse = 0, ANNtrue = 1}; // ANN boolean type (non ANSI C++)
-
-//----------------------------------------------------------------------
-// ANNcoord, ANNdist
-// ANNcoord and ANNdist are the types used for representing
-// point coordinates and distances. They can be modified by the
-// user, with some care. It is assumed that they are both numeric
-// types, and that ANNdist is generally of an equal or higher type
-// from ANNcoord. A variable of type ANNdist should be large
-// enough to store the sum of squared components of a variable
-// of type ANNcoord for the number of dimensions needed in the
-// application. For example, the following combinations are
-// legal:
-//
-// ANNcoord ANNdist
-// --------- -------------------------------
-// short short, int, long, float, double
-// int int, long, float, double
-// long long, float, double
-// float float, double
-// double double
-//
-// It is the user's responsibility to make sure that overflow does
-// not occur in distance calculation.
-//----------------------------------------------------------------------
-
-typedef double ANNcoord; // coordinate data type
-typedef double ANNdist; // distance data type
-
-//----------------------------------------------------------------------
-// ANNidx
-// ANNidx is a point index. When the data structure is built, the
-// points are given as an array. Nearest neighbor results are
-// returned as an integer index into this array. To make it
-// clearer when this is happening, we define the integer type
-// ANNidx. Indexing starts from 0.
-//
-// For fixed-radius near neighbor searching, it is possible that
-// there are not k nearest neighbors within the search radius. To
-// indicate this, the algorithm returns ANN_NULL_IDX as its result.
-// It should be distinguishable from any valid array index.
-//----------------------------------------------------------------------
-
-typedef int ANNidx; // point index
-const ANNidx ANN_NULL_IDX = -1; // a NULL point index
-
-//----------------------------------------------------------------------
-// Infinite distance:
-// The code assumes that there is an "infinite distance" which it
-// uses to initialize distances before performing nearest neighbor
-// searches. It should be as larger or larger than any legitimate
-// nearest neighbor distance.
-//
-// On most systems, these should be found in the standard include
-// file <limits.h> or possibly <float.h>. If you do not have these
-// file, some suggested values are listed below, assuming 64-bit
-// long, 32-bit int and 16-bit short.
-//
-// ANNdist ANN_DIST_INF Values (see <limits.h> or <float.h>)
-// ------- ------------ ------------------------------------
-// double DBL_MAX 1.79769313486231570e+308
-// float FLT_MAX 3.40282346638528860e+38
-// long LONG_MAX 0x7fffffffffffffff
-// int INT_MAX 0x7fffffff
-// short SHRT_MAX 0x7fff
-//----------------------------------------------------------------------
-
-const ANNdist ANN_DIST_INF = ANN_DBL_MAX;
-
-//----------------------------------------------------------------------
-// Significant digits for tree dumps:
-// When floating point coordinates are used, the routine that dumps
-// a tree needs to know roughly how many significant digits there
-// are in a ANNcoord, so it can output points to full precision.
-// This is defined to be ANNcoordPrec. On most systems these
-// values can be found in the standard include files <limits.h> or
-// <float.h>. For integer types, the value is essentially ignored.
-//
-// ANNcoord ANNcoordPrec Values (see <limits.h> or <float.h>)
-// -------- ------------ ------------------------------------
-// double DBL_DIG 15
-// float FLT_DIG 6
-// long doesn't matter 19
-// int doesn't matter 10
-// short doesn't matter 5
-//----------------------------------------------------------------------
-
-#ifdef DBL_DIG // number of sig. bits in ANNcoord
- const int ANNcoordPrec = DBL_DIG;
-#else
- const int ANNcoordPrec = 15; // default precision
-#endif
-
-//----------------------------------------------------------------------
-// Self match?
-// In some applications, the nearest neighbor of a point is not
-// allowed to be the point itself. This occurs, for example, when
-// computing all nearest neighbors in a set. By setting the
-// parameter ANN_ALLOW_SELF_MATCH to ANNfalse, the nearest neighbor
-// is the closest point whose distance from the query point is
-// strictly positive.
-//----------------------------------------------------------------------
-
-const ANNbool ANN_ALLOW_SELF_MATCH = ANNtrue;
-
-//----------------------------------------------------------------------
-// Norms and metrics:
-// ANN supports any Minkowski norm for defining distance. In
-// particular, for any p >= 1, the L_p Minkowski norm defines the
-// length of a d-vector (v0, v1, ..., v(d-1)) to be
-//
-// (|v0|^p + |v1|^p + ... + |v(d-1)|^p)^(1/p),
-//
-// (where ^ denotes exponentiation, and |.| denotes absolute
-// value). The distance between two points is defined to be the
-// norm of the vector joining them. Some common distance metrics
-// include
-//
-// Euclidean metric p = 2
-// Manhattan metric p = 1
-// Max metric p = infinity
-//
-// In the case of the max metric, the norm is computed by taking
-// the maxima of the absolute values of the components. ANN is
-// highly "coordinate-based" and does not support general distances
-// functions (e.g. those obeying just the triangle inequality). It
-// also does not support distance functions based on
-// inner-products.
-//
-// For the purpose of computing nearest neighbors, it is not
-// necessary to compute the final power (1/p). Thus the only
-// component that is used by the program is |v(i)|^p.
-//
-// ANN parameterizes the distance computation through the following
-// macros. (Macros are used rather than procedures for
-// efficiency.) Recall that the distance between two points is
-// given by the length of the vector joining them, and the length
-// or norm of a vector v is given by formula:
-//
-// |v| = ROOT(POW(v0) # POW(v1) # ... # POW(v(d-1)))
-//
-// where ROOT, POW are unary functions and # is an associative and
-// commutative binary operator mapping the following types:
-//
-// ** POW: ANNcoord --> ANNdist
-// ** #: ANNdist x ANNdist --> ANNdist
-// ** ROOT: ANNdist (>0) --> double
-//
-// For early termination in distance calculation (partial distance
-// calculation) we assume that POW and # together are monotonically
-// increasing on sequences of arguments, meaning that for all
-// v0..vk and y:
-//
-// POW(v0) #...# POW(vk) <= (POW(v0) #...# POW(vk)) # POW(y).
-//
-// Incremental Distance Calculation:
-// The program uses an optimized method of computing distances for
-// kd-trees and bd-trees, called incremental distance calculation.
-// It is used when distances are to be updated when only a single
-// coordinate of a point has been changed. In order to use this,
-// we assume that there is an incremental update function DIFF(x,y)
-// for #, such that if:
-//
-// s = x0 # ... # xi # ... # xk
-//
-// then if s' is equal to s but with xi replaced by y, that is,
-//
-// s' = x0 # ... # y # ... # xk
-//
-// then the length of s' can be computed by:
-//
-// |s'| = |s| # DIFF(xi,y).
-//
-// Thus, if # is + then DIFF(xi,y) is (yi-x). For the L_infinity
-// norm we make use of the fact that in the program this function
-// is only invoked when y > xi, and hence DIFF(xi,y)=y.
-//
-// Finally, for approximate nearest neighbor queries we assume
-// that POW and ROOT are related such that
-//
-// v*ROOT(x) = ROOT(POW(v)*x)
-//
-// Here are the values for the various Minkowski norms:
-//
-// L_p: p even: p odd:
-// ------------------------- ------------------------
-// POW(v) = v^p POW(v) = |v|^p
-// ROOT(x) = x^(1/p) ROOT(x) = x^(1/p)
-// # = + # = +
-// DIFF(x,y) = y - x DIFF(x,y) = y - x
-//
-// L_inf:
-// POW(v) = |v|
-// ROOT(x) = x
-// # = max
-// DIFF(x,y) = y
-//
-// By default the Euclidean norm is assumed. To change the norm,
-// uncomment the appropriate set of macros below.
-//----------------------------------------------------------------------
-
-//----------------------------------------------------------------------
-// Use the following for the Euclidean norm
-//----------------------------------------------------------------------
-#define ANN_POW(v) ((v)*(v))
-#define ANN_ROOT(x) sqrt(x)
-#define ANN_SUM(x,y) ((x) + (y))
-#define ANN_DIFF(x,y) ((y) - (x))
-
-//----------------------------------------------------------------------
-// Use the following for the L_1 (Manhattan) norm
-//----------------------------------------------------------------------
-// #define ANN_POW(v) fabs(v)
-// #define ANN_ROOT(x) (x)
-// #define ANN_SUM(x,y) ((x) + (y))
-// #define ANN_DIFF(x,y) ((y) - (x))
-
-//----------------------------------------------------------------------
-// Use the following for a general L_p norm
-//----------------------------------------------------------------------
-// #define ANN_POW(v) pow(fabs(v),p)
-// #define ANN_ROOT(x) pow(fabs(x),1/p)
-// #define ANN_SUM(x,y) ((x) + (y))
-// #define ANN_DIFF(x,y) ((y) - (x))
-
-//----------------------------------------------------------------------
-// Use the following for the L_infinity (Max) norm
-//----------------------------------------------------------------------
-// #define ANN_POW(v) fabs(v)
-// #define ANN_ROOT(x) (x)
-// #define ANN_SUM(x,y) ((x) > (y) ? (x) : (y))
-// #define ANN_DIFF(x,y) (y)
-
-//----------------------------------------------------------------------
-// Array types
-// The following array types are of basic interest. A point is
-// just a dimensionless array of coordinates, a point array is a
-// dimensionless array of points. A distance array is a
-// dimensionless array of distances and an index array is a
-// dimensionless array of point indices. The latter two are used
-// when returning the results of k-nearest neighbor queries.
-//----------------------------------------------------------------------
-
-typedef ANNcoord* ANNpoint; // a point
-typedef ANNpoint* ANNpointArray; // an array of points
-typedef ANNdist* ANNdistArray; // an array of distances
-typedef ANNidx* ANNidxArray; // an array of point indices
-
-//----------------------------------------------------------------------
-// Basic point and array utilities:
-// The following procedures are useful supplements to ANN's nearest
-// neighbor capabilities.
-//
-// annDist():
-// Computes the (squared) distance between a pair of points.
-// Note that this routine is not used internally by ANN for
-// computing distance calculations. For reasons of efficiency
-// this is done using incremental distance calculation. Thus,
-// this routine cannot be modified as a method of changing the
-// metric.
-//
-// Because points (somewhat like strings in C) are stored as
-// pointers. Consequently, creating and destroying copies of
-// points may require storage allocation. These procedures do
-// this.
-//
-// annAllocPt() and annDeallocPt():
-// Allocate a deallocate storage for a single point, and
-// return a pointer to it. The argument to AllocPt() is
-// used to initialize all components.
-//
-// annAllocPts() and annDeallocPts():
-// Allocate and deallocate an array of points as well a
-// place to store their coordinates, and initializes the
-// points to point to their respective coordinates. It
-// allocates point storage in a contiguous block large
-// enough to store all the points. It performs no
-// initialization.
-//
-// annCopyPt():
-// Creates a copy of a given point, allocating space for
-// the new point. It returns a pointer to the newly
-// allocated copy.
-//----------------------------------------------------------------------
-
-DLL_API ANNdist annDist(
- int dim, // dimension of space
- ANNpoint p, // points
- ANNpoint q);
-
-DLL_API ANNpoint annAllocPt(
- int dim, // dimension
- ANNcoord c = 0); // coordinate value (all equal)
-
-DLL_API ANNpointArray annAllocPts(
- int n, // number of points
- int dim); // dimension
-
-DLL_API void annDeallocPt(
- ANNpoint &p); // deallocate 1 point
-
-DLL_API void annDeallocPts(
- ANNpointArray &pa); // point array
-
-DLL_API ANNpoint annCopyPt(
- int dim, // dimension
- ANNpoint source); // point to copy
-
-//----------------------------------------------------------------------
-//Overall structure: ANN supports a number of different data structures
-//for approximate and exact nearest neighbor searching. These are:
-//
-// ANNbruteForce A simple brute-force search structure.
-// ANNkd_tree A kd-tree tree search structure. ANNbd_tree
-// A bd-tree tree search structure (a kd-tree with shrink
-// capabilities).
-//
-// At a minimum, each of these data structures support k-nearest
-// neighbor queries. The nearest neighbor query, annkSearch,
-// returns an integer identifier and the distance to the nearest
-// neighbor(s) and annRangeSearch returns the nearest points that
-// lie within a given query ball.
-//
-// Each structure is built by invoking the appropriate constructor
-// and passing it (at a minimum) the array of points, the total
-// number of points and the dimension of the space. Each structure
-// is also assumed to support a destructor and member functions
-// that return basic information about the point set.
-//
-// Note that the array of points is not copied by the data
-// structure (for reasons of space efficiency), and it is assumed
-// to be constant throughout the lifetime of the search structure.
-//
-// The search algorithm, annkSearch, is given the query point (q),
-// and the desired number of nearest neighbors to report (k), and
-// the error bound (eps) (whose default value is 0, implying exact
-// nearest neighbors). It returns two arrays which are assumed to
-// contain at least k elements: one (nn_idx) contains the indices
-// (within the point array) of the nearest neighbors and the other
-// (dd) contains the squared distances to these nearest neighbors.
-//
-// The search algorithm, annkFRSearch, is a fixed-radius kNN
-// search. In addition to a query point, it is given a (squared)
-// radius bound. (This is done for consistency, because the search
-// returns distances as squared quantities.) It does two things.
-// First, it computes the k nearest neighbors within the radius
-// bound, and second, it returns the total number of points lying
-// within the radius bound. It is permitted to set k = 0, in which
-// case it effectively answers a range counting query. If the
-// error bound epsilon is positive, then the search is approximate
-// in the sense that it is free to ignore any point that lies
-// outside a ball of radius r/(1+epsilon), where r is the given
-// (unsquared) radius bound.
-//
-// The generic object from which all the search structures are
-// dervied is given below. It is a virtual object, and is useless
-// by itself.
-//----------------------------------------------------------------------
-
-class DLL_API ANNpointSet {
-public:
- virtual ~ANNpointSet() {} // virtual distructor
-
- virtual void annkSearch( // approx k near neighbor search
- ANNpoint q, // query point
- int k, // number of near neighbors to return
- ANNidxArray nn_idx, // nearest neighbor array (modified)
- ANNdistArray dd, // dist to near neighbors (modified)
- double eps=0.0 // error bound
- ) = 0; // pure virtual (defined elsewhere)
-
- virtual int annkFRSearch( // approx fixed-radius kNN search
- ANNpoint q, // query point
- ANNdist sqRad, // squared radius
- int k = 0, // number of near neighbors to return
- ANNidxArray nn_idx = NULL, // nearest neighbor array (modified)
- ANNdistArray dd = NULL, // dist to near neighbors (modified)
- double eps=0.0 // error bound
- ) = 0; // pure virtual (defined elsewhere)
-
- virtual int theDim() = 0; // return dimension of space
- virtual int nPoints() = 0; // return number of points
- // return pointer to points
- virtual ANNpointArray thePoints() = 0;
-};
-
-//----------------------------------------------------------------------
-// Brute-force nearest neighbor search:
-// The brute-force search structure is very simple but inefficient.
-// It has been provided primarily for the sake of comparison with
-// and validation of the more complex search structures.
-//
-// Query processing is the same as described above, but the value
-// of epsilon is ignored, since all distance calculations are
-// performed exactly.
-//
-// WARNING: This data structure is very slow, and should not be
-// used unless the number of points is very small.
-//
-// Internal information:
-// ---------------------
-// This data structure bascially consists of the array of points
-// (each a pointer to an array of coordinates). The search is
-// performed by a simple linear scan of all the points.
-//----------------------------------------------------------------------
-
-class DLL_API ANNbruteForce: public ANNpointSet {
- int dim; // dimension
- int n_pts; // number of points
- ANNpointArray pts; // point array
-public:
- ANNbruteForce( // constructor from point array
- ANNpointArray pa, // point array
- int n, // number of points
- int dd); // dimension
-
- ~ANNbruteForce(); // destructor
-
- void annkSearch( // approx k near neighbor search
- ANNpoint q, // query point
- int k, // number of near neighbors to return
- ANNidxArray nn_idx, // nearest neighbor array (modified)
- ANNdistArray dd, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- int annkFRSearch( // approx fixed-radius kNN search
- ANNpoint q, // query point
- ANNdist sqRad, // squared radius
- int k = 0, // number of near neighbors to return
- ANNidxArray nn_idx = NULL, // nearest neighbor array (modified)
- ANNdistArray dd = NULL, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- int theDim() // return dimension of space
- { return dim; }
-
- int nPoints() // return number of points
- { return n_pts; }
-
- ANNpointArray thePoints() // return pointer to points
- { return pts; }
-};
-
-//----------------------------------------------------------------------
-// kd- and bd-tree splitting and shrinking rules
-// kd-trees supports a collection of different splitting rules.
-// In addition to the standard kd-tree splitting rule proposed
-// by Friedman, Bentley, and Finkel, we have introduced a
-// number of other splitting rules, which seem to perform
-// as well or better (for the distributions we have tested).
-//
-// The splitting methods given below allow the user to tailor
-// the data structure to the particular data set. They are
-// are described in greater details in the kd_split.cc source
-// file. The method ANN_KD_SUGGEST is the method chosen (rather
-// subjectively) by the implementors as the one giving the
-// fastest performance, and is the default splitting method.
-//
-// As with splitting rules, there are a number of different
-// shrinking rules. The shrinking rule ANN_BD_NONE does no
-// shrinking (and hence produces a kd-tree tree). The rule
-// ANN_BD_SUGGEST uses the implementors favorite rule.
-//----------------------------------------------------------------------
-
-enum ANNsplitRule {
- ANN_KD_STD = 0, // the optimized kd-splitting rule
- ANN_KD_MIDPT = 1, // midpoint split
- ANN_KD_FAIR = 2, // fair split
- ANN_KD_SL_MIDPT = 3, // sliding midpoint splitting method
- ANN_KD_SL_FAIR = 4, // sliding fair split method
- ANN_KD_SUGGEST = 5}; // the authors' suggestion for best
-const int ANN_N_SPLIT_RULES = 6; // number of split rules
-
-enum ANNshrinkRule {
- ANN_BD_NONE = 0, // no shrinking at all (just kd-tree)
- ANN_BD_SIMPLE = 1, // simple splitting
- ANN_BD_CENTROID = 2, // centroid splitting
- ANN_BD_SUGGEST = 3}; // the authors' suggested choice
-const int ANN_N_SHRINK_RULES = 4; // number of shrink rules
-
-//----------------------------------------------------------------------
-// kd-tree:
-// The main search data structure supported by ANN is a kd-tree.
-// The main constructor is given a set of points and a choice of
-// splitting method to use in building the tree.
-//
-// Construction:
-// -------------
-// The constructor is given the point array, number of points,
-// dimension, bucket size (default = 1), and the splitting rule
-// (default = ANN_KD_SUGGEST). The point array is not copied, and
-// is assumed to be kept constant throughout the lifetime of the
-// search structure. There is also a "load" constructor that
-// builds a tree from a file description that was created by the
-// Dump operation.
-//
-// Search:
-// -------
-// There are two search methods:
-//
-// Standard search (annkSearch()):
-// Searches nodes in tree-traversal order, always visiting
-// the closer child first.
-// Priority search (annkPriSearch()):
-// Searches nodes in order of increasing distance of the
-// associated cell from the query point. For many
-// distributions the standard search seems to work just
-// fine, but priority search is safer for worst-case
-// performance.
-//
-// Printing:
-// ---------
-// There are two methods provided for printing the tree. Print()
-// is used to produce a "human-readable" display of the tree, with
-// indenation, which is handy for debugging. Dump() produces a
-// format that is suitable reading by another program. There is a
-// "load" constructor, which constructs a tree which is assumed to
-// have been saved by the Dump() procedure.
-//
-// Performance and Structure Statistics:
-// -------------------------------------
-// The procedure getStats() collects statistics information on the
-// tree (its size, height, etc.) See ANNperf.h for information on
-// the stats structure it returns.
-//
-// Internal information:
-// ---------------------
-// The data structure consists of three major chunks of storage.
-// The first (implicit) storage are the points themselves (pts),
-// which have been provided by the users as an argument to the
-// constructor, or are allocated dynamically if the tree is built
-// using the load constructor). These should not be changed during
-// the lifetime of the search structure. It is the user's
-// responsibility to delete these after the tree is destroyed.
-//
-// The second is the tree itself (which is dynamically allocated in
-// the constructor) and is given as a pointer to its root node
-// (root). These nodes are automatically deallocated when the tree
-// is deleted. See the file src/kd_tree.h for further information
-// on the structure of the tree nodes.
-//
-// Each leaf of the tree does not contain a pointer directly to a
-// point, but rather contains a pointer to a "bucket", which is an
-// array consisting of point indices. The third major chunk of
-// storage is an array (pidx), which is a large array in which all
-// these bucket subarrays reside. (The reason for storing them
-// separately is the buckets are typically small, but of varying
-// sizes. This was done to avoid fragmentation.) This array is
-// also deallocated when the tree is deleted.
-//
-// In addition to this, the tree consists of a number of other
-// pieces of information which are used in searching and for
-// subsequent tree operations. These consist of the following:
-//
-// dim Dimension of space
-// n_pts Number of points currently in the tree
-// n_max Maximum number of points that are allowed
-// in the tree
-// bkt_size Maximum bucket size (no. of points per leaf)
-// bnd_box_lo Bounding box low point
-// bnd_box_hi Bounding box high point
-// splitRule Splitting method used
-//
-//----------------------------------------------------------------------
-
-//----------------------------------------------------------------------
-// Some types and objects used by kd-tree functions
-// See src/kd_tree.h and src/kd_tree.cpp for definitions
-//----------------------------------------------------------------------
-class ANNkdStats; // stats on kd-tree
-class ANNkd_node; // generic node in a kd-tree
-typedef ANNkd_node* ANNkd_ptr; // pointer to a kd-tree node
-
-class DLL_API ANNkd_tree: public ANNpointSet {
-protected:
- int dim; // dimension of space
- int n_pts; // number of points in tree
- int bkt_size; // bucket size
- ANNpointArray pts; // the points
- ANNidxArray pidx; // point indices (to pts array)
- ANNkd_ptr root; // root of kd-tree
- ANNpoint bnd_box_lo; // bounding box low point
- ANNpoint bnd_box_hi; // bounding box high point
-
- void SkeletonTree( // construct skeleton tree
- int n, // number of points
- int dd, // dimension
- int bs, // bucket size
- ANNpointArray pa = NULL, // point array (optional)
- ANNidxArray pi = NULL); // point indices (optional)
-
-public:
- ANNkd_tree( // build skeleton tree
- int n = 0, // number of points
- int dd = 0, // dimension
- int bs = 1); // bucket size
-
- ANNkd_tree( // build from point array
- ANNpointArray pa, // point array
- int n, // number of points
- int dd, // dimension
- int bs = 1, // bucket size
- ANNsplitRule split = ANN_KD_SUGGEST); // splitting method
-
- ANNkd_tree( // build from dump file
- std::istream& in); // input stream for dump file
-
- ~ANNkd_tree(); // tree destructor
-
- void annkSearch( // approx k near neighbor search
- ANNpoint q, // query point
- int k, // number of near neighbors to return
- ANNidxArray nn_idx, // nearest neighbor array (modified)
- ANNdistArray dd, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- void annkPriSearch( // priority k near neighbor search
- ANNpoint q, // query point
- int k, // number of near neighbors to return
- ANNidxArray nn_idx, // nearest neighbor array (modified)
- ANNdistArray dd, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- int annkFRSearch( // approx fixed-radius kNN search
- ANNpoint q, // the query point
- ANNdist sqRad, // squared radius of query ball
- int k, // number of neighbors to return
- ANNidxArray nn_idx = NULL, // nearest neighbor array (modified)
- ANNdistArray dd = NULL, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- int theDim() // return dimension of space
- { return dim; }
-
- int nPoints() // return number of points
- { return n_pts; }
-
- ANNpointArray thePoints() // return pointer to points
- { return pts; }
-
- virtual void Print( // print the tree (for debugging)
- ANNbool with_pts, // print points as well?
- std::ostream& out); // output stream
-
- virtual void Dump( // dump entire tree
- ANNbool with_pts, // print points as well?
- std::ostream& out); // output stream
-
- virtual void getStats( // compute tree statistics
- ANNkdStats& st); // the statistics (modified)
-};
-
-//----------------------------------------------------------------------
-// Box decomposition tree (bd-tree)
-// The bd-tree is inherited from a kd-tree. The main difference
-// in the bd-tree and the kd-tree is a new type of internal node
-// called a shrinking node (in the kd-tree there is only one type
-// of internal node, a splitting node). The shrinking node
-// makes it possible to generate balanced trees in which the
-// cells have bounded aspect ratio, by allowing the decomposition
-// to zoom in on regions of dense point concentration. Although
-// this is a nice idea in theory, few point distributions are so
-// densely clustered that this is really needed.
-//----------------------------------------------------------------------
-
-class DLL_API ANNbd_tree: public ANNkd_tree {
-public:
- ANNbd_tree( // build skeleton tree
- int n, // number of points
- int dd, // dimension
- int bs = 1) // bucket size
- : ANNkd_tree(n, dd, bs) {} // build base kd-tree
-
- ANNbd_tree( // build from point array
- ANNpointArray pa, // point array
- int n, // number of points
- int dd, // dimension
- int bs = 1, // bucket size
- ANNsplitRule split = ANN_KD_SUGGEST, // splitting rule
- ANNshrinkRule shrink = ANN_BD_SUGGEST); // shrinking rule
-
- ANNbd_tree( // build from dump file
- std::istream& in); // input stream for dump file
-};
-
-//----------------------------------------------------------------------
-// Other functions
-// annMaxPtsVisit Sets a limit on the maximum number of points
-// to visit in the search.
-// annClose Can be called when all use of ANN is finished.
-// It clears up a minor memory leak.
-//----------------------------------------------------------------------
-
-DLL_API void annMaxPtsVisit( // max. pts to visit in search
- int maxPts); // the limit
-
-DLL_API void annClose(); // called to end use of ANN
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/ANNperf.h b/debian/libmadlib-dev/usr/include/MAdLib/ANNperf.h
deleted file mode 100644
index b18c816..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/ANNperf.h
+++ /dev/null
@@ -1,226 +0,0 @@
-//----------------------------------------------------------------------
-// File: ANNperf.h
-// Programmer: Sunil Arya and David Mount
-// Last modified: 03/04/98 (Release 0.1)
-// Description: Include file for ANN performance stats
-//
-// Some of the code for statistics gathering has been adapted
-// from the SmplStat.h package in the g++ library.
-//----------------------------------------------------------------------
-// Copyright (c) 1997-1998 University of Maryland and Sunil Arya and David
-// Mount. All Rights Reserved.
-//
-// This software and related documentation is part of the
-// Approximate Nearest Neighbor Library (ANN).
-//
-// Permission to use, copy, and distribute this software and its
-// documentation is hereby granted free of charge, provided that
-// (1) it is not a component of a commercial product, and
-// (2) this notice appears in all copies of the software and
-// related documentation.
-//
-// The University of Maryland (U.M.) and the authors make no representations
-// about the suitability or fitness of this software for any purpose. It is
-// provided "as is" without express or implied warranty.
-//----------------------------------------------------------------------
-// History:
-// Revision 0.1 03/04/98
-// Initial release
-// Revision 1.0 04/01/05
-// Added ANN_ prefix to avoid name conflicts.
-//----------------------------------------------------------------------
-
-#ifndef ANNperf_H
-#define ANNperf_H
-
-//----------------------------------------------------------------------
-// basic includes
-//----------------------------------------------------------------------
-
-#include <ANN/ANN.h> // basic ANN includes
-
-//----------------------------------------------------------------------
-// kd-tree stats object
-// This object is used for collecting information about a kd-tree
-// or bd-tree.
-//----------------------------------------------------------------------
-
-class ANNkdStats { // stats on kd-tree
-public:
- int dim; // dimension of space
- int n_pts; // no. of points
- int bkt_size; // bucket size
- int n_lf; // no. of leaves (including trivial)
- int n_tl; // no. of trivial leaves (no points)
- int n_spl; // no. of splitting nodes
- int n_shr; // no. of shrinking nodes (for bd-trees)
- int depth; // depth of tree
- float sum_ar; // sum of leaf aspect ratios
- float avg_ar; // average leaf aspect ratio
- //
- // reset stats
- void reset(int d=0, int n=0, int bs=0)
- {
- dim = d; n_pts = n; bkt_size = bs;
- n_lf = n_tl = n_spl = n_shr = depth = 0;
- sum_ar = avg_ar = 0.0;
- }
-
- ANNkdStats() // basic constructor
- { reset(); }
-
- void merge(const ANNkdStats &st); // merge stats from child
-};
-
-//----------------------------------------------------------------------
-// ANNsampStat
-// A sample stat collects numeric (double) samples and returns some
-// simple statistics. Its main functions are:
-//
-// reset() Reset to no samples.
-// += x Include sample x.
-// samples() Return number of samples.
-// mean() Return mean of samples.
-// stdDev() Return standard deviation
-// min() Return minimum of samples.
-// max() Return maximum of samples.
-//----------------------------------------------------------------------
-class DLL_API ANNsampStat {
- int n; // number of samples
- double sum; // sum
- double sum2; // sum of squares
- double minVal, maxVal; // min and max
-public :
- void reset() // reset everything
- {
- n = 0;
- sum = sum2 = 0;
- minVal = ANN_DBL_MAX;
- maxVal = -ANN_DBL_MAX;
- }
-
- ANNsampStat() { reset(); } // constructor
-
- void operator+=(double x) // add sample
- {
- n++; sum += x; sum2 += x*x;
- if (x < minVal) minVal = x;
- if (x > maxVal) maxVal = x;
- }
-
- int samples() { return n; } // number of samples
-
- double mean() { return sum/n; } // mean
-
- // standard deviation
- double stdDev() { return sqrt((sum2 - (sum*sum)/n)/(n-1));}
-
- double min() { return minVal; } // minimum
- double max() { return maxVal; } // maximum
-};
-
-//----------------------------------------------------------------------
-// Operation count updates
-//----------------------------------------------------------------------
-
-#ifdef ANN_PERF
- #define ANN_FLOP(n) {ann_Nfloat_ops += (n);}
- #define ANN_LEAF(n) {ann_Nvisit_lfs += (n);}
- #define ANN_SPL(n) {ann_Nvisit_spl += (n);}
- #define ANN_SHR(n) {ann_Nvisit_shr += (n);}
- #define ANN_PTS(n) {ann_Nvisit_pts += (n);}
- #define ANN_COORD(n) {ann_Ncoord_hts += (n);}
-#else
- #define ANN_FLOP(n)
- #define ANN_LEAF(n)
- #define ANN_SPL(n)
- #define ANN_SHR(n)
- #define ANN_PTS(n)
- #define ANN_COORD(n)
-#endif
-
-//----------------------------------------------------------------------
-// Performance statistics
-// The following data and routines are used for computing performance
-// statistics for nearest neighbor searching. Because these routines
-// can slow the code down, they can be activated and deactiviated by
-// defining the ANN_PERF variable, by compiling with the option:
-// -DANN_PERF
-//----------------------------------------------------------------------
-
-//----------------------------------------------------------------------
-// Global counters for performance measurement
-//
-// visit_lfs The number of leaf nodes visited in the
-// tree.
-//
-// visit_spl The number of splitting nodes visited in the
-// tree.
-//
-// visit_shr The number of shrinking nodes visited in the
-// tree.
-//
-// visit_pts The number of points visited in all the
-// leaf nodes visited. Equivalently, this
-// is the number of points for which distance
-// calculations are performed.
-//
-// coord_hts The number of times a coordinate of a
-// data point is accessed. This is generally
-// less than visit_pts*d if partial distance
-// calculation is used. This count is low
-// in the sense that if a coordinate is hit
-// many times in the same routine we may
-// count it only once.
-//
-// float_ops The number of floating point operations.
-// This includes all operations in the heap
-// as well as distance calculations to boxes.
-//
-// average_err The average error of each query (the
-// error of the reported point to the true
-// nearest neighbor). For k nearest neighbors
-// the error is computed k times.
-//
-// rank_err The rank error of each query (the difference
-// in the rank of the reported point and its
-// true rank).
-//
-// data_pts The number of data points. This is not
-// a counter, but used in stats computation.
-//----------------------------------------------------------------------
-
-extern int ann_Ndata_pts; // number of data points
-extern int ann_Nvisit_lfs; // number of leaf nodes visited
-extern int ann_Nvisit_spl; // number of splitting nodes visited
-extern int ann_Nvisit_shr; // number of shrinking nodes visited
-extern int ann_Nvisit_pts; // visited points for one query
-extern int ann_Ncoord_hts; // coordinate hits for one query
-extern int ann_Nfloat_ops; // floating ops for one query
-extern ANNsampStat ann_visit_lfs; // stats on leaf nodes visits
-extern ANNsampStat ann_visit_spl; // stats on splitting nodes visits
-extern ANNsampStat ann_visit_shr; // stats on shrinking nodes visits
-extern ANNsampStat ann_visit_nds; // stats on total nodes visits
-extern ANNsampStat ann_visit_pts; // stats on points visited
-extern ANNsampStat ann_coord_hts; // stats on coordinate hits
-extern ANNsampStat ann_float_ops; // stats on floating ops
-//----------------------------------------------------------------------
-// The following need to be part of the public interface, because
-// they are accessed outside the DLL in ann_test.cpp.
-//----------------------------------------------------------------------
-DLL_API extern ANNsampStat ann_average_err; // average error
-DLL_API extern ANNsampStat ann_rank_err; // rank error
-
-//----------------------------------------------------------------------
-// Declaration of externally accessible routines for statistics
-//----------------------------------------------------------------------
-
-DLL_API void annResetStats(int data_size); // reset stats for a set of queries
-
-DLL_API void annResetCounts(); // reset counts for one queries
-
-DLL_API void annUpdateStats(); // update stats with current counts
-
-DLL_API void annPrintStats(ANNbool validate); // print statistics for a run
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/ANNx.h b/debian/libmadlib-dev/usr/include/MAdLib/ANNx.h
deleted file mode 100644
index 38b07b7..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/ANNx.h
+++ /dev/null
@@ -1,170 +0,0 @@
-//----------------------------------------------------------------------
-// File: ANNx.h
-// Programmer: Sunil Arya and David Mount
-// Last modified: 03/04/98 (Release 0.1)
-// Description: Internal include file for ANN
-//
-// These declarations are of use in manipulating some of
-// the internal data objects appearing in ANN, but are not
-// needed for applications just using the nearest neighbor
-// search.
-//
-// Typical users of ANN should not need to access this file.
-//----------------------------------------------------------------------
-// Copyright (c) 1997-1998 University of Maryland and Sunil Arya and David
-// Mount. All Rights Reserved.
-//
-// This software and related documentation is part of the
-// Approximate Nearest Neighbor Library (ANN).
-//
-// Permission to use, copy, and distribute this software and its
-// documentation is hereby granted free of charge, provided that
-// (1) it is not a component of a commercial product, and
-// (2) this notice appears in all copies of the software and
-// related documentation.
-//
-// The University of Maryland (U.M.) and the authors make no representations
-// about the suitability or fitness of this software for any purpose. It is
-// provided "as is" without express or implied warranty.
-//----------------------------------------------------------------------
-// History:
-// Revision 0.1 03/04/98
-// Initial release
-// Revision 1.0 04/01/05
-// Changed LO, HI, IN, OUT to ANN_LO, ANN_HI, etc.
-//----------------------------------------------------------------------
-
-#ifndef ANNx_H
-#define ANNx_H
-
-#include <iomanip> // I/O manipulators
-#include <ANN/ANN.h> // ANN includes
-
-//----------------------------------------------------------------------
-// Global constants and types
-//----------------------------------------------------------------------
-enum {ANN_LO=0, ANN_HI=1}; // splitting indices
-enum {ANN_IN=0, ANN_OUT=1}; // shrinking indices
- // what to do in case of error
-enum ANNerr {ANNwarn = 0, ANNabort = 1};
-
-//----------------------------------------------------------------------
-// Maximum number of points to visit
-// We have an option for terminating the search early if the
-// number of points visited exceeds some threshold. If the
-// threshold is 0 (its default) this means there is no limit
-// and the algorithm applies its normal termination condition.
-//----------------------------------------------------------------------
-
-extern int ANNmaxPtsVisited; // maximum number of pts visited
-extern int ANNptsVisited; // number of pts visited in search
-
-//----------------------------------------------------------------------
-// Global function declarations
-//----------------------------------------------------------------------
-
-void annError( // ANN error routine
- char *msg, // error message
- ANNerr level); // level of error
-
-void annPrintPt( // print a point
- ANNpoint pt, // the point
- int dim, // the dimension
- std::ostream &out); // output stream
-
-//----------------------------------------------------------------------
-// Orthogonal (axis aligned) rectangle
-// Orthogonal rectangles are represented by two points, one
-// for the lower left corner (min coordinates) and the other
-// for the upper right corner (max coordinates).
-//
-// The constructor initializes from either a pair of coordinates,
-// pair of points, or another rectangle. Note that all constructors
-// allocate new point storage. The destructor deallocates this
-// storage.
-//
-// BEWARE: Orthogonal rectangles should be passed ONLY BY REFERENCE.
-// (C++'s default copy constructor will not allocate new point
-// storage, then on return the destructor free's storage, and then
-// you get into big trouble in the calling procedure.)
-//----------------------------------------------------------------------
-
-class ANNorthRect {
-public:
- ANNpoint lo; // rectangle lower bounds
- ANNpoint hi; // rectangle upper bounds
-//
- ANNorthRect( // basic constructor
- int dd, // dimension of space
- ANNcoord l=0, // default is empty
- ANNcoord h=0)
- { lo = annAllocPt(dd, l); hi = annAllocPt(dd, h); }
-
- ANNorthRect( // (almost a) copy constructor
- int dd, // dimension
- const ANNorthRect &r) // rectangle to copy
- { lo = annCopyPt(dd, r.lo); hi = annCopyPt(dd, r.hi); }
-
- ANNorthRect( // construct from points
- int dd, // dimension
- ANNpoint l, // low point
- ANNpoint h) // hight point
- { lo = annCopyPt(dd, l); hi = annCopyPt(dd, h); }
-
- ~ANNorthRect() // destructor
- { annDeallocPt(lo); annDeallocPt(hi); }
-
- ANNbool inside(int dim, ANNpoint p);// is point p inside rectangle?
-};
-
-void annAssignRect( // assign one rect to another
- int dim, // dimension (both must be same)
- ANNorthRect &dest, // destination (modified)
- const ANNorthRect &source); // source
-
-//----------------------------------------------------------------------
-// Orthogonal (axis aligned) halfspace
-// An orthogonal halfspace is represented by an integer cutting
-// dimension cd, coordinate cutting value, cv, and side, sd, which is
-// either +1 or -1. Our convention is that point q lies in the (closed)
-// halfspace if (q[cd] - cv)*sd >= 0.
-//----------------------------------------------------------------------
-
-class ANNorthHalfSpace {
-public:
- int cd; // cutting dimension
- ANNcoord cv; // cutting value
- int sd; // which side
-//
- ANNorthHalfSpace() // default constructor
- { cd = 0; cv = 0; sd = 0; }
-
- ANNorthHalfSpace( // basic constructor
- int cdd, // dimension of space
- ANNcoord cvv, // cutting value
- int sdd) // side
- { cd = cdd; cv = cvv; sd = sdd; }
-
- ANNbool in(ANNpoint q) const // is q inside halfspace?
- { return (ANNbool) ((q[cd] - cv)*sd >= 0); }
-
- ANNbool out(ANNpoint q) const // is q outside halfspace?
- { return (ANNbool) ((q[cd] - cv)*sd < 0); }
-
- ANNdist dist(ANNpoint q) const // (squared) distance from q
- { return (ANNdist) ANN_POW(q[cd] - cv); }
-
- void setLowerBound(int d, ANNpoint p)// set to lower bound at p[i]
- { cd = d; cv = p[d]; sd = +1; }
-
- void setUpperBound(int d, ANNpoint p)// set to upper bound at p[i]
- { cd = d; cv = p[d]; sd = -1; }
-
- void project(ANNpoint &q) // project q (modified) onto halfspace
- { if (out(q)) q[cd] = cv; }
-};
-
- // array of halfspaces
-typedef ANNorthHalfSpace *ANNorthHSArray;
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/AdaptInterface.h b/debian/libmadlib-dev/usr/include/MAdLib/AdaptInterface.h
deleted file mode 100644
index 4620a57..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/AdaptInterface.h
+++ /dev/null
@@ -1,345 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_ADAPTINTERFACE
-#define _H_ADAPTINTERFACE
-
-// from Geo
-#include "ModelInterface.h"
-
-// from Mesh
-#include "MeshDataBaseInterface.h"
-#include "CheckMesh.h"
-#ifdef PARALLEL
-#include "MeshDataBaseComm.h"
-#endif
-
-// from Adapt
-#include "MAdOutput.h"
-#include "CallbackDefinition.h"
-
-#include <set>
-#include <string>
-#include <vector>
-
-namespace MAd {
-
- class SizeFieldManager;
- class geoMatcher;
- class mobileObjectSet;
- class MeshParametersManager;
-
- // Local mesh modification operators
- class edgeSplitOp;
- class edgeCollapseOp;
- class faceCollapseOp;
- class DESCOp;
- class edgeSwapOp;
- class faceSwapOp;
- class vertexMoveOp;
- class regionRemoveOp;
- class sliverFaceHandler;
- class sliverRegionHandler;
-
- // -------------------------------------------------------------------
-
- enum algorithmDefinition {
- SPT_SWP_SLV_CPS,
- CPS_SWP_SLV_SPT,
- SLV_CPS_SWP_SPT
- };
-#ifdef PARALLEL
- enum loadBalanceAlgorithm {
- DEFAULT_ALGORITHM,
- METIS_ALGORITHM
- };
-#endif
- // -------------------------------------------------------------------
- // -------------------------------------------------------------------
- class MeshAdapter {
-
- public:
-
- MeshAdapter(pMesh m, pSField sf=NULL);
- ~MeshAdapter();
-
- // --------------------------------------------
-
- // gives an overview of the current parameters
- void printParameters() const;
-
- void addCallback(CBFunction CB, void* userData,
- CBFunc_move CB_move=0, void* userData_move=0);
- void addSizeField(pSField sf);
-
- // whether or not the global size field is smoothed and maximum gradient
- void setSizeFieldSmoothing(bool, double maxGrad=1.);
-
- // set the maximum number of iterations available to reach the 'convergence'
- // of the global mesh adaptation procedure
- void setMaxIterationsNumber(int max);
-
-#ifdef PARALLEL
- // set load balancing algorithm
- void setLoadBalancingAlgorithm( loadBalanceAlgorithm lbAlgo );
- // set the data Exchanger
-// void setDataExchanger( MDB_DataExchanger* dataExch);
-#endif
-
- // impose the interval governing edges length in the transformed space
- void setEdgeLenSqBounds(double lower, double upper);
-
- // set permission for operators to modify slightly boundaries
- // (default: false) and tolerance for the relative volume/area
- // modifications.
- // Edge collapse and face collapse:
- void setCollapseOnBoundary(bool accept=true, double tolerance=1.e-6);
- // Edge swap:
- void setSwapOnBoundary(bool accept=true, double tolerance=1.e-6);
-
- // impose the element quality from which a swap is not required
- void setNoSwapQuality(double noSwapQuality);
-
- // impose a threshold rate of improvement for edge and face swaps
- void setSwapMinImproveRatio(double ratio);
-
- // impose the maximum quality of a sliver
- void setSliverQuality(double sliverQuality);
-
- // Allow or forbid operations creating a sliver.
- // If allowed and a bound is prescribed, it is allowed only if the edge is
- // longer/shorter than the bound (bound is expressed as the square of
- // adimensional edge length)
- void setSliverPermissionInESplit (bool perm, double lenSqBound=-1.);
- void setSliverPermissionInECollapse(bool perm, double lenSqBound=-1.);
-
- // tell if you want to project new vertices on geometric entities
- void setGeoTracking(bool enable, bool cavityEqualMesh=false,
- int cavityThickness=2, double chi=1.0,
- bool strictChecking=false, bool forceRelocation=false);
-
- // set a value for a very huge edge length (default=1.e14)
- void setInfiniteLength(double length);
-
- // frequency at which the size fields are updated inside the global loop
- // (useful for local and analytical SF)
- void setSFUpdateFrequency(int freq);
-
- // Set verbosity:
- // < 0 : no detail
- // 1 : global procedure details
- // > 2 : iterations details
- void setVerbosity(int _verbosity);
-
- // constraint a mesh/geometric entity and all its downward entities
- void clearConstraints() const;
- void setConstraint(pEntity e) const;
- void setConstraint(pGEntity ge) const;
- void setConstraint(int type, int id) const;
- // unconstrain a geometric entity
- void removeConstraint(int type, int id) const;
- void removeConstraint(pGEntity ge) const;
-
- // manage the physical time
- void incrementTime(double dt);
- void setTime(double t);
- double getTime() const;
- void updateSizeField();
-
- // functions to keep track of the initial coordinates
- void storeInitialCoordinates();
- void removeStoredCoordinates();
-
- // add predefined mobile objects
- void registerObjects(mobileObjectSet* objs);
-
- // will attach/get the datas to the nodes of the mesh
- // order in vector is the node iterator order
- void registerData (std::string name, const std::vector<double>) const;
- void registerVData (std::string name, const std::vector<std::vector<double> >) const;
- void getMeshData (std::string name, std::vector<double> *) const;
- void getMeshVData (std::string name, std::vector<std::vector<double> > *) const;
- void removeData (std::string name) const;
- void removeVData (std::string name) const;
-
- public:
-
- // ---------------- OPERATIONS ----------------
-
- // ----- Level 1 -----
- // ---> Elementary operations
-
- // Split the edge and if 'checkSize' is true, check that the two resulting
- // edges are not short edges.
- bool splitEdge (pEdge e, bool checkSize=false);
- bool collapseEdge (pEdge e);
- bool collapseFace(pFace f, pEdge e);
- bool DSplitCollapseEdge(pRegion pr, pEdge edge1, pEdge edge2);
- bool swapEdge (pEdge e);
- bool swapFace (pFace f);
- bool removeRegion(pRegion region);
- bool moveVertex (pVertex v, double dxyz[3]);
- bool putVertex (pVertex v, double xyz[3]);
- // bool moveVertices (std::multiset<vDisplacement,vDisplacementLess>& vDisps);
-
- // ----- Level 2 -----
- // ---> Loops on one elementary operation
-
- // node repositioning
- double LaplaceSmoothing();
-
- // topology operations
- int eSplitLoop();
- int eCollapseLoop();
- int eSplitCollapseLoop();
- int edgeSwapLoop();
- int faceSwapLoop();
- int splitEveryEdgeOnce();
-
- // slivers handling
- int removeSlivers();
-
- // geometry matching
- void snapVertices();
-
- // ----- Level 3 -----
- // ---> Procedures with a global objective
- int optimiseEdgeLength();
- int optimiseElementShape();
- int splitLongestEdges();
- int runOneIter();
- void uglyTheMesh(double avgQualThresh, int maxIt);
- int removeNegativeElements();
-
- // ----- Level 4 -----
- // ---> Global procedure
- void run();
-
- // ----- objects motion -----
- // move boundaries without repositioning nodes in the volume
- int partlyMoveObjects (double t, double dt, double* part);
- // move boundaries and reposition all nodes with an elasticity analogy
- // chi: stiffness alteration coefficient (-1 = none)
- // meshIsCavity: true = elastic computation on whole mesh
- // cavityThickness: nb layers of elements if mesh is not the cavity
- void moveObjectsAndReposition (double t, double dt, double chi=-1.,
- bool meshIsCavity=true,
- int cavityThickness=3);
-
- // --------------------------------------------
-
- public:
-
- // ------ Diagnostics ------
-
- // get informations on mesh quality
- void getStatistics(double * meanQuality, double * worstQuality) const;
-
- // about all datas attached to the nodes
- void nodalDataDiagnostics(std::ostream& out) const;
-
- // journals listing all operations tested or applied
- void setDebugLevel(int debug) { debugLevel = debug; }
- void openJournal() const;
- void setReferenceJournal(std::string& name) const;
- void flushJournal(std::ostream& out) const;
-
- // sliver outputs
- void enableSliverReports();
- void testSliverOperators(bool test);
-
- // performs several checks to check the validity of the mesh
- bool checkTheMesh(int verbose=1,
- std::ostream& out=std::cout,
- MeshStatus * status=NULL) const;
-
- // get infos about mobile objects
- void infoMobileObjects(std::ostream& out=std::cout) const;
-
- public:
-
- // ------ Outputs ------
-
- // set the path to output directory
- void setOutputPrefix(std::string prefix);
-
- // write mesh with required postpro data in 'pos' format (Gmsh)
- void writePos(std::string fn, MAdOutputData type=OD_CONSTANT) const;
-
- // write mesh in 'msh' format (Gmsh)
- void writeMsh(std::string fn) const;
-
- // write a .pos file with the 'volumic' curvature for every local size field
- void writeVolumicCurvature(std::string fnBase) const;
-
- // get global data over the mesh
- void printStatistics(std::ostream& out) const;
- void printSliverRegionStatistics(std::ostream& out) const;
-
- public:
-
- // save all available informations to output directory and abort
- void abort(int line=-1, const char* file=NULL) const;
-
- // --------------------------------------------
-
- private:
-
- void setDefaultValues();
- void buildOperators();
- void removeOperators();
-
- private:
-
- pMesh mesh;
- SizeFieldManager * SFManager;
-
- mobileObjectSet * objects;
-
- // ----- Local mesh modification operators -----
- edgeSplitOp * eSplitOp;
- edgeCollapseOp * eCollapseOp;
- faceCollapseOp * fCollapseOp;
- DESCOp * descOp;
- edgeSwapOp * eSwapOp;
- faceSwapOp * fSwapOp;
- vertexMoveOp * vMoveOp;
- regionRemoveOp * rRegionOp;
- sliverFaceHandler * sliverFOp;
- sliverRegionHandler * sliverROp;
-
- // ----- Geometry related -----
- geoMatcher * geoTracker;
-
- // ----- Adaptation parameters -----
- algorithmDefinition algorithm;
- int maxIterationsNumber;
- MeshParametersManager& mpm;
-#ifdef PARALLEL
- loadBalanceAlgorithm load_balance_algorithm;
- MDB_DataExchanger* dataExchanger;
-#endif
- int updateSFFrequency;
-
- // ----- Output parameters -----
- int verbosity;
- std::string outPrefix;
- int debugLevel;
- };
-
- // -------------------------------------------------------------------
-
-} // End of namespace MAd
-
-#endif
-
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/AnalyticalSField.h b/debian/libmadlib-dev/usr/include/MAdLib/AnalyticalSField.h
deleted file mode 100644
index 62b3768..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/AnalyticalSField.h
+++ /dev/null
@@ -1,95 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_ANALYTICALSFIELD
-#define _H_ANALYTICALSFIELD
-
-#include "SizeFieldBase.h"
-
-#include <vector>
-
-namespace MAd {
-
- class MAdStringFieldEvaluator;
-
- // -------------------------------------------------------------------
- typedef pMSize (*sizeFunction)(const double[3],double);
-
- // -------------------------------------------------------------------
- class AnalyticalSField: public SizeFieldBase
- {
- public:
-
- AnalyticalSField();
- AnalyticalSField(std::string);
- AnalyticalSField(std::vector<std::string>,std::vector<std::string>,
- std::vector<std::string>,std::vector<std::string>);
- AnalyticalSField(sizeFunction);
- ~AnalyticalSField();
-
- public:
-
- sFieldType getType() const { return ANALYTICALSFIELD; }
- void describe() const;
-
- void scale(double);
-
- // set the size
- void setSize(sizeFunction);
- void setSize(const std::string);
- void setSize(std::vector<std::string>,std::vector<std::string>,
- std::vector<std::string>,std::vector<std::string>);
-
- // get the size at a location (allocate space!)
- pMSize getSize(const pVertex) const;
- pMSize getSizeOnEntity(const pEntity, const double[3]) const;
-
- // edge length (squared)
- double SF_VV_lengthSq(const pVertex, const pVertex) const;
- double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const;
-
- // face area (squared)
- double SF_F_areaSq(const pFace) const;
- double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const;
-
- // region volume
- double SF_R_volume(const pRegion) const;
- double SF_XYZ_volume(const double[4][3], const pMSize) const;
-
- // center and its associated size
- double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const;
- double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const;
-
- private:
-
- // description of the sizes if we use functions
- sizeFunction sFct;
-
- // description of the sizes if we use strings
- bool isotropic;
- std::string h0, h1, h2;
- std::vector<std::string> e0, e1, e2;
- MAdStringFieldEvaluator * evaluator;
-
- private:
-
- pMSize eval(const double[3]) const;
- };
-
-}
-
-// -------------------------------------------------------------------
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/BackgroundSF.h b/debian/libmadlib-dev/usr/include/MAdLib/BackgroundSF.h
deleted file mode 100644
index 705729f..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/BackgroundSF.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_BACKGROUNDSF
-#define _H_BACKGROUNDSF
-
-#include "SizeFieldBase.h"
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- class BackgroundSF: public SizeFieldBase
- {
- public:
-
- BackgroundSF(std::string _name="");
- ~BackgroundSF();
-
- void loadData(std::string fileName);
-
- public:
-
- sFieldType getType() const { return BACKGROUNDSFIELD; }
-
- void scale(double) {throw;}
-
- // get the size at a location (allocate space!)
- pMSize getSize(const pVertex) const;
- pMSize getSizeOnEntity(const pEntity, const double[3]) const { throw; return 0; }
-
- // edge length (squared)
- double SF_VV_lengthSq(const pVertex, const pVertex) const { throw; return -1.; }
- double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const { throw; return -1.; }
-
- // face area (squared)
- double SF_F_areaSq(const pFace) const { throw; return -1.; }
- double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const { throw; return -1.; }
-
- // region volume
- double SF_R_volume(const pRegion) const { throw; return -1.; }
- double SF_XYZ_volume(const double[4][3], const pMSize) const { throw; return -1.; }
-
- // center and its associated size
- double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const { throw; return -1.; }
- double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const { throw; return -1.; }
-
- private:
-
- void setSize(pEntity, pMSize);
- void setSize(pEntity, double);
-
- void redistributeToVertices();
-
- pGModel bgModel;
- pMesh bgMesh;
- pMeshDataId pMSizeFieldId;
- };
-
-}
-
-// -------------------------------------------------------------------
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/CallbackDefinition.h b/debian/libmadlib-dev/usr/include/MAdLib/CallbackDefinition.h
deleted file mode 100644
index e30e0a5..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/CallbackDefinition.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_CALLBACKDEFINITION
-#define _H_CALLBACKDEFINITION
-
-#include "MeshDataBaseInterface.h"
-#include "MAdOperations.h"
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- // callback functions
- typedef void (*CBFunction)(pPList, pPList,
- void *, operationType, pEntity);
- typedef void (*CBFunc_move)(pVertex, double *, void *);
-
- // -------------------------------------------------------------------
- struct CBStructure {
-
- CBFunction function;
- void* data;
-
- bool operator== (CBStructure cb) const {
- if ( function==cb.function && data==cb.data) return true;
- return false;
- }
- };
-
- // -------------------------------------------------------------------
- struct CBStructureMove {
- CBFunc_move function;
- void* data;
-
- bool operator== (CBStructureMove cbm) const {
- if ( function==cbm.function && data==cbm.data) return true;
- return false;
- }
- };
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/CheckMesh.h b/debian/libmadlib-dev/usr/include/MAdLib/CheckMesh.h
deleted file mode 100644
index c7d2506..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/CheckMesh.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef _CHECKMESH_H_
-#define _CHECKMESH_H_
-
-#include "MeshDataBaseInterface.h"
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- typedef enum MeshStatus {
- VALID = 0,
- NEGATIVE_VOLUME = 1,
- GEOM_INCOMPATIBILITY = 2,
- WRONG_EDGE_TO_RGN_CONN = 3,
- WRONG_FACE_TO_RGN_CONN = 4,
- WRONG_FACE_TO_VTX_CONN = 5,
- WRONG_EDGE_CONN = 6,
- WRONG_ENTITY_POINTERS = 7,
- WRONG_ITERATORS = 8,
- WRONG_PARAMETERS = 9
- } MeshStatus;
-
- // -------------------------------------------------------------------
- typedef enum checkType {
- CHECK_ALL,
- CHECK_VOLUME,
- CHECK_GEOM_COMPATIBILITY,
- CHECK_EDGE_TO_RGN_CONN,
- CHECK_FACE_TO_RGN_CONN,
- CHECK_FACE_TO_VTX_CONN,
- CHECK_EDGE_CONN,
- CHECK_ENTITY_POINTERS,
- CHECK_ITERATORS,
- CHECK_PARAMETERS
- } checkType;
-
- // -------------------------------------------------------------------
- // return 1 if the mesh passes the test successfully, 0 otherwise
- bool checkMesh(MDB_Mesh * mesh, checkType type=CHECK_ALL, int verbose=1,
- std::ostream& out=std::cout, MeshStatus * status=NULL);
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/DiscreteSF.h b/debian/libmadlib-dev/usr/include/MAdLib/DiscreteSF.h
deleted file mode 100644
index d3a7bdc..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/DiscreteSF.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_DISCRETESF
-#define _H_DISCRETESF
-
-#include "SizeFieldBase.h"
-
-#include <string>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- enum DiscreteSFType {
- UNKNOWN_DSFTYPE,
- VERTEX_P1_DSFTYPE
- };
-
- // -------------------------------------------------------------------
- class DiscreteSF : public SizeFieldBase
- {
- public:
-
- DiscreteSF(pMesh, std::string name="");
- ~DiscreteSF();
-
- sFieldType getType() const { return DISCRETESFIELD; }
- virtual DiscreteSFType discretization() const = 0;
- pMesh getMesh() { return mesh; }
-
- // delete sizes
- virtual void cleanUp() = 0;
- void deleteSize(pEntity);
-
- // Intersect with another size field
- virtual void intersect(const pSField) = 0;
-
- // smooth the size field
- virtual void smooth(double) = 0;
-
- // set a size at all vertices
- virtual void setCurrentSize() = 0;
- virtual void setCurvatureSize(bool aniso,
- double alpha=2., // prescribe 2*PI*alpha edges around a circle
- double hMin=1.e-4) = 0; // minimal size
- virtual void setAllVSizes(pMSize) = 0;
- virtual void setAllVSizes(double[3][3], double[3]) = 0;
- virtual void setAllVSizes(double) = 0;
- virtual void scale(double) = 0;
-
- // set the size at a vertex
- void setSize(pEntity, double[3][3], double[3]);
- void setSize(pEntity, pMSize);
- void setSize(pEntity, double);
- void setSize(int, double);
-
- // get the size at a location (allocate space!)
- virtual pMSize getSize(const pVertex) const = 0;
- virtual pMSize getSizeOnEntity(const pEntity, const double[3]) const = 0;
-
- // get the size at a vertex (do not allocate space)
- virtual const pMSize findSize(const pVertex) const = 0;
- virtual pMSize findSize(const pVertex) = 0;
-
- // edge length (squared)
- virtual double SF_VV_lengthSq(const pVertex, const pVertex) const = 0;
- virtual double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const = 0;
-
- // face area (squared)
- virtual double SF_F_areaSq(const pFace) const = 0;
- virtual double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const = 0;
-
- // region volume
- virtual double SF_R_volume(const pRegion) const = 0;
- virtual double SF_XYZ_volume(const double[4][3], const pMSize) const = 0;
-
- // center and its associated size
- virtual double SF_E_center(const pEdge, double[3], double *reducSq, pMSize *) const = 0;
- virtual double SF_VV_center(const pVertex, const pVertex,
- double[3], double *reducSq, pMSize *) const = 0;
-
- protected:
-
- pMesh mesh;
- int dim;
- pMeshDataId pMSizeFieldId;
-
- };
-
-}
-
-// -------------------------------------------------------------------
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/DistanceFunction.h b/debian/libmadlib-dev/usr/include/MAdLib/DistanceFunction.h
deleted file mode 100644
index 7fcb8ae..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/DistanceFunction.h
+++ /dev/null
@@ -1,135 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_DISTANCEFUNCTION
-#define _H_DISTANCEFUNCTION
-
-#include "MeshDataBaseInterface.h"
-#include "DistanceToPoints.h"
-#include <set>
-#include <map>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- // This class computes and stores:
- // - the distance to a set of vertices, edges or faces
- // (as attached double),
- // - the gradient of the distance (as attached pointer),
- // - the Laplacian of the distance (as attached double).
- //
- // There are two ways to compute the distance:
- // - to a set of vertices (inacurate to represent a wall)
- // - to a set of edges(2D)/faces(3D) (more accurate, more expensive)
- // The choice is governed by the variable 'distToEntities'
- // -------------------------------------------------------------------
- class distanceFunction {
-
- public:
-
- distanceFunction(pMesh m, bool _distToEntities);
- ~distanceFunction();
-
- void computeTree(const std::set<pVertex>&, const std::set<pEntity>&);
-
- void clearVertexData(pVertex pv) const;
-
- // Distance
-
- void computeAllDistances() const;
- double getDistance(const pVertex pv) const;
- void clearDistance(const pVertex pv) const;
- void clearDistances() const;
-
- double computeDistance(const double xyz[3]) const;
- double computeDistSq (const double xyz[3]) const;
-
- void outputDistance(const char * fn) const;
-
- // Gradient of the distance
-
- void computeAllDistAndGrad() const; // the most accurate for gradients
-
- void computeGradientAtVertices(); // not accurate
- void clearGradientAtVertices();
- bool getGradient(const pVertex pv, double grad[3]) const;
- bool getGradientOnEntity(const pEntity entity,
- const double xyz[3],
- double grad[3]) const;
- void attachGradient(pVertex pv, double grad[3]) const;
-
- void outputGradAtVertices(const char * fn) const;
-
- // Curvature ( Laplacian of the distance )
-
- void computeGradientAndCurvature(const std::set<pRegion>& regs); // not accurate...
-
- void computeCurvature(const std::set<pRegion>& regs);
- void smoothCurvature(int nbSmoothings=1) const;
- bool getCurvature(const pVertex pv, double *c) const;
- bool getCurvatureOnEntity(const pEntity entity,
- const double xyz[3],
- double *curv) const;
- void clearCurvature() const;
- void attachCurvature(pVertex pv, double curv) const;
-
- void outputCurvature(const char * fn) const;
-
- private:
-
- double computeDistance(const pVertex pv) const;
- void computeGradientInElements() const;
- void clearGradientInElements() const;
-
- bool getGradientOnEdge(const pEdge edge,
- const double xyz[3],
- double grad[3]) const;
- bool getGradientOnEdgeParam(const pEdge pE,
- const double u,
- double grad[3]) const;
- bool getGradientOnFace(const pFace face,
- const double xyz[3],
- double grad[3]) const;
- bool getGradientOnFaceParam(const pFace face,
- const double u[2],
- double grad[3]) const;
- bool getGradientOnRegion(const pRegion region,
- const double xyz[3],
- double grad[3]) const;
- bool getGradientOnRegionParam(const pRegion region,
- const double u[3],
- double grad[3]) const;
-
- private:
-
- pMesh mesh;
- pMeshDataId distId, vGradId, rGradId, vCurvId;
-
- // true: distance computed to a set of edges (2D) or faces (3D)
- // false: distance computed to a set of vertices
- bool distToEntities;
-
- int nVert, nEnt;
- int nVE; // number of vertices in a wall entity
- double * xyzV; // coordinates of the vertices sorted by local ids with contiguous xyz
- int * entToV; // entities vertices (by local id)
- std::multimap<int,int> vToEnt; // vertices entities
- SearchTool * kdSearch;
- std::map<pVertex,int> pvToSearchId;
-
- };
-
- // -------------------------------------------------------------------
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/DistanceToPoints.h b/debian/libmadlib-dev/usr/include/MAdLib/DistanceToPoints.h
deleted file mode 100644
index 30b6793..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/DistanceToPoints.h
+++ /dev/null
@@ -1,152 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_DISTANCETOPOINTS
-#define _H_DISTANCETOPOINTS
-
-#include <stdio.h>
-
-#ifdef _HAVE_ANN_
-#include "ANN.h"
-#endif
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- class MAd_searchTool {
-
- public:
- MAd_searchTool() {
- printf("Error: no search tool implemented: flag _HAVE_ANN_ not set\n");
- throw;
- }
- void reset() { throw; }
- void allocatePoints(int n) { throw; }
- void addPoint(int index, double xyz[3]) { throw; }
- void allocateTree(int n) { throw; }
- double computeDistanceSq(const double xyz[3], int * id=NULL) const { throw; }
- };
-
- // -------------------------------------------------------------------
-#ifdef _HAVE_ANN_
- class ANN_searchTool {
-
- public:
-
- ANN_searchTool()
- {
- kdTree = NULL;
- points = NULL;
- }
-
- ~ANN_searchTool()
- {
- if (kdTree) { delete kdTree; kdTree = NULL; }
- if (points) { annDeallocPts(points); points = NULL; }
- annClose();
- }
-
- void reset()
- {
- if (kdTree) { delete kdTree; kdTree = NULL; }
- if (points) { annDeallocPts(points); points = NULL; }
- }
-
- void allocatePoints(int n)
- {
- if (points) annDeallocPts(points);
- points = annAllocPts(n,3);
- }
-
- void addPoint(int index, double xyz[3])
- {
- for (int i=0; i<3; i++) points[index][i] = xyz[i];
- }
-
- void allocateTree(int n)
- {
- if (kdTree) delete kdTree;
- kdTree = new ANNkd_tree(points, n, 3);
- }
-
- double computeDistanceSq(const double xyz[3], int * id=NULL) const
- {
- if (!kdTree) {
- printf("Error: no research tree built\n");
- throw;
- }
-
- double xyz_copy[3]; // because the first argument of annkSearch is not const
- for (int i=0; i<3; i++) xyz_copy[i] = xyz[i];
- int maxpts = 1;
- // the use of allocation is done due to ms visual c++ compiler
- // that do not support c99 standard (it uses the c95 et c++98 standards)
- ANNidx* index= new ANNidx[maxpts];
- ANNdist* distSq= new ANNdist[maxpts];
- kdTree->annkSearch(xyz_copy, maxpts, index, distSq);
- double theDistSq = distSq[0];
- if ( id ) *id = index[0];
- delete [] index;
- delete [] distSq;
- return theDistSq;
- }
-
- // Compute gradient of the square distance to the cloud of points
- // by non-centered differences. Central differences would lead to
- // zero gradients for points located on the walls (distance is not signed).
- double gradDistanceSq(const double xyz[3], double grad[3]) const
- {
- double dSq = computeDistanceSq(xyz);
- double eps = 1.e-3;
- double dEps[2];
-
- int maxpts = 1;
- ANNidx* index= new ANNidx[maxpts];
- ANNdist* distSq= new ANNdist[maxpts];
- double tmp[3];
- tmp[0] = xyz[0]; tmp[1] = xyz[1]; tmp[2] = xyz[2];
- for (int i=0; i<3; i++) {
- tmp[i] += eps;
- kdTree->annkSearch(tmp, maxpts, index, distSq);
- dEps[0] = distSq[0];
- tmp[i] -= 2*eps;
- kdTree->annkSearch(tmp, maxpts, index, distSq);
- dEps[1] = distSq[1];
- tmp[i] += eps;
- grad[i] = 1000. * ( dEps[1] - dEps[0] );
- }
-
- return dSq;
- }
-
- private:
-
- ANNkd_tree * kdTree;
- ANNpoint * points;
- };
-
- typedef ANN_searchTool SearchTool;
-
- // -------------------------------------------------------------------
-#else
-
- typedef MAd_searchTool SearchTool;
-
- // -------------------------------------------------------------------
-#endif
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/LocalSizeField.h b/debian/libmadlib-dev/usr/include/MAdLib/LocalSizeField.h
deleted file mode 100644
index 02203da..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/LocalSizeField.h
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_LOCALSIZEFIELD
-#define _H_LOCALSIZEFIELD
-
-#include "SizeFieldBase.h"
-#include "DistanceFunction.h"
-
-#include <set>
-#include <utility>
-#include <string>
-
-// -------------------------------------------------------------------
-/*
- This class stores a size field around an object.
- * The object is defined by a set of geometrical entities.
- * The size field is defined by a radius and strings giving the
- size in function of the distance to the object.
- * Returns:
- - If the distance is superior to the radius, the class
- returns a huge size.
- - Otherwise, it can return one of these sizes:
- - an isotropic size (evaluated from 'sizeN')
- - an anisotropic size with a main axis in the normal
- direction to the object and a corresponding value ('sizeN'),
- and two axis in the tangent directions with another value
- ('sizeT').
-*/
-// -------------------------------------------------------------------
-
-namespace MAd {
-
- class MAdStringFieldEvaluator;
-
- // -------------------------------------------------------------------
- class LocalSizeField : public SizeFieldBase {
-
- public:
-
- LocalSizeField(pMesh m, std::string name="", bool _distToFaces=false);
- LocalSizeField(const LocalSizeField& _lsf);
- ~LocalSizeField();
-
- sFieldType getType() const { return LOCALSFIELD; }
-
- void scale(double);
-
- void addGeometricEntity(int type, int tag);
- void updateTree();
-
- void setIsoSize(double _radius, std::string _sizeN);
- void setAnisoSize(double _radius, std::string _sizeN, std::string _sizeT);
- void setCurvatureLimiter(double onTgSize, double _maxCurv=1.e12);
-
- // get the size at a location (allocate space!)
- pMSize getSize(const pVertex) const;
- pMSize getSizeOnEntity(const pEntity, const double[3]) const;
-
- // edge length (squared)
- double SF_VV_lengthSq(const pVertex, const pVertex) const;
- double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const;
-
- // face area (squared)
- double SF_F_areaSq(const pFace) const;
- double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const;
-
- // region volume
- double SF_R_volume(const pRegion) const;
- double SF_XYZ_volume(const double[4][3], const pMSize) const;
-
- // center and its associated size
- double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const;
- double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const;
-
- // divergence of the curvature
- bool getCurvature(const pVertex pv, double *c) const;
-
- private:
-
- void collectEntities(std::set<pVertex> * verts,
- std::set<pEntity> * ents) const;
-
- private:
-
- pMesh mesh;
-
- std::set<pGEntity> geomEntities;
- int geoDim;
-
- bool isotropic;
- double radius;
- std::string sizeN, sizeT;
- MAdStringFieldEvaluator * sEvalN, * sEvalT;
-
- bool distToFaces; // true: distance computed to the faces of the wall (exact)
- // false: distance computed to the vertices of the wall
- distanceFunction dFct; // tool to compute distance and its derivatives
-
- // limiters based on curvature
- bool limit;
- double tgSizeLimitCoef;
- double maxCurv;
- };
-
-}
-
-// -------------------------------------------------------------------
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MAdConfig.h b/debian/libmadlib-dev/usr/include/MAdLib/MAdConfig.h
deleted file mode 100644
index 9b8fa6c..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MAdConfig.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* MAdConfig.h. Generated from MAdConfig.h.in by configure. */
-/* MAdConfig.h.in. Generated from configure.ac by autoheader. */
-
-/* Whether we run the compilation on a 64 bits architecture or not */
-#define HAVE_64BIT_SIZE_T 1
-
-/* Whether we use BLAS or not */
-#define HAVE_BLAS 1
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Whether we use Lapack or not */
-#define HAVE_LAPACK 1
-
-/* Define to 1 if you have the `m' library (-lm). */
-#define HAVE_LIBM 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the <mpi.h> header file. */
-/* #undef HAVE_MPI_H */
-
-/* Whether we use DLLs or not */
-#define HAVE_NO_DLL /**/
-
-/* Whether we use socklens or not */
-#define HAVE_NO_SOCKLEN_T /**/
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#define LT_OBJDIR ".libs/"
-
-/* Name of package */
-#define PACKAGE "madlib"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "contrib at madlib.be"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "MAdLib"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "MAdLib 1.2.3"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "madlib"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.2.3"
-
-/* Whether we compile for parallel utilization or not */
-#define PARALLEL /**/
-
-/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 8
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Version number of package */
-#define VERSION "1.2.3"
-
-/* Whether we use the ANN library or not */
-#define _HAVE_ANN_ 1
-
-/* Whether we use BLAS or not */
-#define _HAVE_BLAS_ 1
-
-/* Whether we use GMM or not */
-#define _HAVE_GMM_ /**/
-
-/* Whether we use Gmsh or not */
-#define _HAVE_GMSH_ /**/
-
-/* Whether we use Mathex or not */
-#define _HAVE_MATHEX_ 1
-
-/* Whether we use Metis or not */
-#define _HAVE_METIS_ /**/
-
-/* Whether we use MPI or not */
-#define _HAVE_MPI_ /**/
-
-/* Whether we use OpenCascade or not */
-#define _HAVE_OCC_ /**/
-
-/* Whether we use ParMetis or not */
-#define _HAVE_PARMETIS_ /**/
-
-/* Whether we use the Cenaero parser or not */
-#define _HAVE_PARSER_ /**/
-
-/* Whether we use PETSc or not */
-#define _HAVE_PETSC_ /**/
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MAdLib.h b/debian/libmadlib-dev/usr/include/MAdLib/MAdLib.h
deleted file mode 100644
index abb50e4..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MAdLib.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_MAD_MADLIB
-#define _H_MAD_MADLIB
-
-// interface to the geometrical model
-#include "ModelInterface.h"
-
-// interface to the mesh
-#include "MeshDataBaseInterface.h"
-#include "MeshDataBaseParallelInterface.h"
-#include "MeshDataBaseComm.h"
-#include "MeshDataBaseCommPeriodic.h"
-#include "CheckMesh.h"
-
-// interface to mesh adaptation
-#include "AdaptInterface.h"
-#include "SizeField.h"
-#include "CallbackDefinition.h"
-#include "MobileObject.h"
-
-//! Needed with the Gmsh geometrical model
-void MAdLibInitialize(int * argc, char** argv[]);
-void MAdLibFinalize();
-
-#endif
-
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MAdOperations.h b/debian/libmadlib-dev/usr/include/MAdLib/MAdOperations.h
deleted file mode 100644
index 1425e13..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MAdOperations.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_MADOPERATIONS
-#define _H_MADOPERATIONS
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- enum operationType {
- MAd_UNKNOWNOPERATION = 0,
- MAd_VERTEXMOVE = 1,
- MAd_ESPLIT = 2,
- MAd_ECOLLAPSE = 3,
- MAd_FCOLLAPSE = 4,
- MAd_DESPLTCLPS = 5,
- MAd_ESWAP = 6,
- MAd_FSWAP = 7,
- MAd_RREMOVE = 8
- };
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MAdOutput.h b/debian/libmadlib-dev/usr/include/MAdLib/MAdOutput.h
deleted file mode 100644
index 47bd193..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MAdOutput.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_MADOUTPUT
-#define _H_MADOUTPUT
-
-#include "SizeFieldBase.h"
-#include "MeshDataBaseInterface.h"
-
-#include <string>
-#include <set>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- typedef enum MAdOutputData {
- OD_CONSTANT = 0,
- OD_MEANRATIO = 1,
- OD_ORIENTEDMEANRATIO = 2,
- OD_SIZEFIELD_MEAN = 3,
- OD_SIZEFIELD_MIN = 4,
- OD_SIZEFIELD_MAX = 5,
- OD_DIMENSION = 6,
- OD_ITERORDER = 7,
- OD_CURVATURE_DIV = 8,
- OD_CURVATURE_MAX = 9,
- OD_CURVATURE_MIN = 10,
- OD_CURVATURE_MAX_VEC = 11,
- OD_CURVATURE_MIN_VEC = 12,
- OD_ANISO_SF_AXIS0 = 13,
- OD_ANISO_SF_AXIS1 = 14,
- OD_ANISO_SF_AXIS2 = 15
- } MAdOutputData;
-
- // -------------------------------------------------------------------
-
- void MAdGmshOutput(const pMesh m, const pSField sf,
- const char *fn, MAdOutputData type);
-
- void MAdAttachedNodalDataOutput (const pMesh m, const char *fn,
- pMeshDataId id);
- void MAdAttachedNodalDataVecOutput(const pMesh m, const char *fn,
- pMeshDataId id);
-
- void printPosEntities(const pPList ents, std::string fn, MAdOutputData type,
- const pSField sf=NULL, int id=0);
-
- void printPosRegions(const std::set<pRegion>, std::string fn, MAdOutputData type,
- const pSField sf=NULL, int id=0);
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseComm.h b/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseComm.h
deleted file mode 100644
index 8d2bbce..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseComm.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Cecile Dobrzynski, Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef _MeshDataBaseCOMM_H
-#define _MeshDataBaseCOMM_H
-
-#include "MeshDataBaseInterface.h"
-
-/*
- MDB_DataExchanger is a class that allow user to exchange
- data's between partitions and/or periodic boundaries. User
- has to provide a tag for non synchronous communications.
- Basically, choose a tag that is higher that 200 for being
- sure that it does not interact with internal messages.
- User has to allocate buffers using malloc.
-
- User will receive its datas.
-*/
-
-namespace MAd {
-
- class MDB_DataExchanger
- {
- private:
- int tagComm;
- public :
- // get a tag for the communication
- int tag() const { return tagComm; }
- // user allocates sends a message of _size size related to mesh entity pe to proc iProc
- virtual void * sendData (pEntity pe, // in
- int iProcDest , // in
- int &_size ) = 0; // out
- // mesh entity pe recieves data *buf form proc iProc.
- // The user shall NOT delete the message !!
- virtual void receiveData (pEntity pe, //in
- int iProcSender , //in
- void *buf ) = 0; //in
- // In case the user has to delete a data when 'pe' is deleted
- virtual void deleteExternalData (pEntity pe) const {}
- MDB_DataExchanger(int _tag): tagComm(_tag) {}
- virtual ~MDB_DataExchanger() {}
- };
- void exchangeDataOnVertices (pMesh m, MDB_DataExchanger &de );
- void exchangeDataOnEdges (pMesh m, MDB_DataExchanger &de );
- void exchangeDataOnFaces (pMesh m, MDB_DataExchanger &de );
- void exchangeDataOnTriangles(pMesh m, MDB_DataExchanger &de );
- void exchangeDataOnQuads (pMesh m, MDB_DataExchanger &de );
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseCommPeriodic.h b/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseCommPeriodic.h
deleted file mode 100644
index 1de3f97..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseCommPeriodic.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Cecile Dobrzynski, Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef _MeshDataBaseCommPerio_H
-#define _MeshDataBaseCommPerio_H
-
-/*
- MDB_DataExchangerPeriodic is a class that allow user to define function for
- periodic boundaries.
-*/
-
-namespace MAd {
-
- class MDB_DataExchangerPeriodic
- {
- public :
- virtual int nbRefPeriodic() const = 0;
- virtual void fperiodic (const int inv,
- const double X,
- const double Y,
- const double Z,
- int numref, // number of the transformation
- double *Xnew,
- double *Ynew,
- double *Znew) = 0;
- virtual ~MDB_DataExchangerPeriodic() {};
- };
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseInterface.h b/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseInterface.h
deleted file mode 100644
index 0698d93..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseInterface.h
+++ /dev/null
@@ -1,409 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef H_MESHDATABASEINTEFACE
-#define H_MESHDATABASEINTEFACE
-
-#include "ModelInterface.h"
-#include <iostream>
-#include <set>
-
-namespace MAd {
-
- class MDB_DataExchangerPeriodic;
-
- typedef unsigned int pMeshDataId;
-
- typedef class MDB_Mesh * pMesh;
-
- typedef class MDB_MeshEntity * pEntity;
- typedef class MDB_Region * pRegion;
- typedef class MDB_Face * pFace;
- typedef class MDB_Edge * pEdge;
- typedef class MDB_Point * pVertex;
- typedef class MDB_Point * pPoint;
-
- typedef class MDB_RegionIter * RIter;
- typedef class MDB_FaceIter * FIter;
- typedef class MDB_EIter * EIter;
- typedef class MDB_VIter * VIter;
-
- typedef class PList * pPList;
-
- /********************/
- /* Mesh Operators */
- /********************/
-
- pMesh M_new(pGModel);
- void M_delete(pMesh);
- void M_load(pMesh, const char * filename);
- void M_clean(pMesh);
-
- void M_shrink(pMesh);
- void M_expand(pMesh);
-
- void M_info(const pMesh, std::ostream& out=std::cout);
- pGModel M_model(pMesh);
- int M_dim(pMesh);
-
- int M_edgesMaxOrder(pMesh);
- int M_facesMaxOrder(pMesh);
- int M_regionsMaxOrder(pMesh);
- int M_maxOrder(pMesh);
-
- bool M_isParametric(pMesh);
-
- void M_writeMsh(const pMesh, const char *name, int version=2,
- const int * partitionTable=NULL);
- void M_writeMshPer(pMesh, const char *name,
- MDB_DataExchangerPeriodic &, int version);
-
-#ifdef _HAVE_METIS_
- void M_Partition(pMesh, int nbParts, const char * filename);
-#endif
-
- int M_numRegions(pMesh);
- int M_numTets(pMesh);
- int M_numHexes(pMesh);
- int M_numPrisms(pMesh);
- int M_numFaces(pMesh);
- int M_numQuads(pMesh);
- int M_numTriangles(pMesh);
- int M_numEdges(pMesh);
- int M_numVertices(pMesh);
-
- RIter M_regionIter(pMesh);
- FIter M_faceIter(pMesh);
- EIter M_edgeIter(pMesh);
- VIter M_vertexIter(pMesh);
-
- int M_numClassifiedRegions (pMesh, pGEntity);
- int M_numClassifiedFaces (pMesh, pGEntity);
- int M_numClassifiedEdges (pMesh, pGEntity);
- int M_numClassifiedVertices(pMesh, pGEntity);
-
- RIter M_classifiedRegionIter(pMesh, pGEntity);
- FIter M_classifiedFaceIter (pMesh, pGEntity, int closure);
- EIter M_classifiedEdgeIter (pMesh, pGEntity, int closure);
- VIter M_classifiedVertexIter(pMesh, pGEntity, int closure);
- pVertex M_classifiedVertex (pMesh, pGVertex);
-
- void M_classifyEntities(pMesh);
-
- /* mesh entity creation routines */
- pRegion M_createR(pMesh, int nFace, pFace faces[], pGEntity pg=NULL);
- pRegion M_createR(pMesh, int nVert, pVertex verts[], pGEntity pg=NULL);
- pRegion M_createR(pMesh, int nVert, int vertIds[], pGEntity pg=NULL);
- pRegion M_createTet(pMesh, int order, bool serendip, int vertIds[], pGEntity pg=NULL);
- pFace M_createF(pMesh, int nEdge, pEdge edges[], pGEntity pg=NULL);
- pFace M_createF(pMesh, int nVert, pVertex verts[], pGEntity pg=NULL);
- pFace M_createF(pMesh, int nVert, int vertIds[], pGEntity pg=NULL);
- pFace M_createTri(pMesh, int order, int vertIds[], pGEntity pg=NULL);
- pEdge M_createE(pMesh, pVertex v1, pVertex v2, pGEntity pg=NULL);
- pEdge M_createE(pMesh, int vId1, int vId2, pGEntity pg=NULL);
- pEdge M_createE(pMesh, pVertex v1, pVertex v2, int order=1,
- pVertex pts[]=NULL, pGEntity pg=NULL);
- pVertex M_createV(pMesh, double x, double y, double z, int patch, pGEntity pg=NULL);
- pVertex M_createV2(pMesh, double xyz[3], int patch, pGEntity pg=NULL);
- pVertex M_createVP(pMesh, double x, double y, double z,
- double u, double v, int patch, pGEntity pg=NULL);
-
- /* mesh entity deletion routines */
- void M_removeRegion(pMesh, pRegion);
- void M_removeFace (pMesh, pFace);
- void M_removeEdge (pMesh, pEdge);
- void M_removeVertex(pMesh, pVertex);
- void P_delete(pPoint);
- pPoint P_new(void);
-
- /* extra access to entities */
- pRegion M_region(pMesh, int []);
- pFace M_face (pMesh, int []);
- pEdge M_edge (pMesh, int, int);
- pVertex M_vertex(pMesh, int);
-
-
- /***********************/
- /* Geometric model ops */
- /***********************/
- /* deprecated (rather use ModelInterface) */
-
- void M_setGeomFeature (pMesh, int, pGEntity);
- int M_numGeomFeatures (pMesh);
- int M_geomFeatureId (pMesh, int ith);
- pPGList M_geomFeature (pMesh, int id);
- void M_printGeomFeatures (pMesh);
-
- /********************/
- /* Entity Iter Ops */
- /********************/
-
- pRegion RIter_next (RIter);
- void RIter_delete(RIter);
- void RIter_reset (RIter);
- pFace FIter_next (FIter);
- void FIter_delete(FIter);
- void FIter_reset (FIter);
- pEdge EIter_next (EIter);
- void EIter_delete(EIter);
- void EIter_reset (EIter);
- pVertex VIter_next (VIter);
- void VIter_delete(VIter);
- void VIter_reset (VIter);
-
- /********************/
- /* Entity Operators */
- /********************/
-
- void EN_info(const pEntity, std::string name="", std::ostream& out=std::cout);
- void EN_setID(pEntity, int id);
- int EN_id (pEntity);
- void EN_print(pEntity);
-
- int EN_type(pEntity);
- int EN_whatInType(pEntity);
- pGEntity EN_whatIn(pEntity);
- void EN_setWhatIn(pEntity,pGEntity);
-
- int EN_numVertices(const pEntity);
- pPList EN_vertices(const pEntity);
- int EN_inClosure(pEntity, pEntity);
-
- /********************/
- /* Region Operators */
- /********************/
-
- void R_info (const pRegion, std::string name="", std::ostream& out=std::cout);
- void R_info_quality (const pRegion, std::ostream& out=std::cout);
- void R_info_topology(const pRegion, std::ostream& out=std::cout);
-
- pGRegion R_whatIn(pRegion);
- int R_whatInType(pRegion);
- void R_setWhatIn(pRegion, pGEntity);
-
- int R_numPoints(pRegion);
- pPoint R_point(pRegion,int);
- int R_numVertices(pRegion);
- pPList R_vertices(pRegion);
- pVertex R_vertex(pRegion, int);
- pVertex R_fcOpVt(const pRegion, const pFace);
- pPList R_edges(pRegion);
- pEdge R_edge(pRegion, int);
- pEdge R_gtOppEdg(const pRegion, const pEdge);
- int R_numFaces(pRegion);
- pFace R_face(pRegion, int);
- pPList R_faces(pRegion);
- pFace R_vtOpFc(const pRegion, const pVertex);
- int R_inClosure(pRegion, pEntity);
- int R_faceDir(pRegion, int);
- int R_faceOri(pRegion, int);
- int R_dirUsingFace(pRegion,pFace);
- int R_oriUsingFace(pRegion,pFace);
-
- void R_coordP1(const pRegion, double [][3]);
- void R_coord(const pRegion, double [][3]);
- double R_volume(const pRegion);
- double R_XYZ_volume (const double [][3]);
- double R_circumRad(const pRegion);
- double R_inscrRad(const pRegion);
- bool R_meanRatioCube(const pRegion, double *);
- bool R_XYZ_meanRatioCube(const double [][3], double *);
- bool R_XYZ_isFlat(const double [][3]);
- void R_linearParams(const pRegion, const double[3], double[3]);
- void R_center(const pRegion, double [3]);
- void R_jacobian(const pRegion, double [3][3]);
- double R_invJacobian(const pRegion, double [3][3]);
- void R_box(const pRegion, double [3][2]);
- bool R_inBox(const pRegion, const double [3], double);
- bool R_contains(const pRegion, const double [3], double);
-
- /********************/
- /* Face Operators */
- /********************/
-
- void F_info(const pFace, std::string name="", std::ostream& out=std::cout);
-
- pFace F_exist(pEntity, pEntity, pEntity, pEntity);
- pFace F_exist(pEdge,pVertex);
-
- pGEntity F_whatIn(pFace);
- int F_whatInType(pFace);
- void F_setWhatIn(pFace, pGEntity);
-
- pPoint F_point(pFace, int);
- int F_numPoints(pFace);
- int F_numPointsTot(pFace);
- int F_numVertices(pFace);
- pPList F_vertices(pFace, int dir);
- pVertex F_vertex(pFace, int);
- pEdge F_vtOpEd(const pFace, const pVertex);
- int F_numEdges(pFace);
- pPList F_edges(pFace);
- pEdge F_edge(pFace, int);
- int F_edgeDir(pFace, int);
- pEdge F_findEdge(const pFace, const pVertex, const pVertex);
- pVertex F_edOpVt(const pFace, const pEdge);
- int F_dirUsingEdge(pFace, pEdge);
- int F_numRegions(pFace);
- pPList F_regions(pFace);
- pRegion F_region(pFace, int);
- pRegion F_otherRegion(const pFace, const pRegion);
- int F_inClosure(pFace, pEntity);
- void F_chDir(pFace);
- int F_align(pFace,pVertex,pVertex,pVertex,pVertex);
-
- void F_coordP1(const pFace, double [][3]);
- void F_coord(const pFace, double [][3]);
- bool F_params(const pFace, double [][2]);
- double F_area(const pFace, const double *dir=NULL);
- double XYZ_F_area(const double [][3], const double *dir=NULL);
- double F_areaSq(const pFace, const double *dir=NULL);
- double XYZ_F_areaSq(const double [][3], const double *dir=NULL);
- void F_linearParams(const pFace, const double[3], double[2]);
- void F_center(const pFace, double [3]);
- void F_normal(const pFace, double [3]);
- void XYZ_F_normal(const double [3][3], double [3]);
- bool F_volumeRatio(const pFace, double *);
- double F_worstVolumeRatio(const std::set<pFace>);
-
- /********************/
- /* Edge Operators */
- /********************/
-
- void E_info(const pEdge, std::string name="", std::ostream& out=std::cout);
-
- pEdge E_exist(pVertex, pVertex);
-
- pGEntity E_whatIn(pEdge);
- int E_whatInType(pEdge);
- void E_setWhatIn(pEdge, pGEntity);
-
- int E_numPoints(pEdge);
- pPoint E_point(pEdge, int);
- pVertex E_vertex(pEdge, int);
- pPList E_vertices(const pEdge);
- pVertex E_otherVertex(pEdge, pVertex);
- int E_numFaces(pEdge);
- pPList E_faces(const pEdge);
- pFace E_face(pEdge, int);
- pFace E_otherFace(pEdge, pFace);
- pFace E_otherFace(pEdge, pFace, pRegion);
- int E_numRegions(pEdge);
- pPList E_regions(pEdge);
- int E_inClosure(pEdge, pEntity);
- int E_dir(pEdge, pVertex, pVertex);
- int E_align(pEdge, pVertex,pVertex);
-
- void E_coordP1(const pEdge, double [][3]);
- void E_coord(const pEdge, double [][3]);
- bool E_params(const pEdge, double [2][2]);
- double E_length(const pEdge);
- double E_lengthSq(const pEdge);
- double E_linearParams(const pEdge, const pVertex);
- double E_linearParams(const pEdge, const double[3]);
- void E_center(const pEdge, double[3]);
- void E_cavityCenter(const pEdge, double[3]);
-
- /********************/
- /* Point Operators */
- /********************/
-
- double P_x(pPoint);
- double P_y(pPoint);
- double P_z(pPoint);
- void P_setPos(pPoint, double x, double y, double z);
-
- void P_setID(pPoint, int);
- int P_id(pPoint);
-
- double P_param1(pPoint);
- void P_setParam1(pPoint, double);
-
- /********************/
- /* Vertex Operators */
- /********************/
-
- void V_info(const pVertex, std::string name="", std::ostream& out=std::cout);
-
- pGEntity V_whatIn(pVertex);
- int V_whatInType(pVertex);
- void V_setWhatIn(pVertex, pGEntity);
-
- pPoint V_point(pVertex);
- int V_numEdges(pVertex);
- pPList V_edges(pVertex);
- pEdge V_edge(pVertex, int);
- int V_numFaces(pVertex);
- pPList V_faces(pVertex);
- int V_numRegions(pVertex);
- pPList V_regions(pVertex);
-
- int V_id(const pVertex);
-
- void V_coord(const pVertex, double [3]);
- bool V_params(pVertex, double *, double *);
- double V_meanEdgeLenSq(const pVertex);
- void V_cavityCenter(const pVertex, double[3]);
-
- /***************************/
- /* Entities list operators */
- /***************************/
-
- pPList PList_new();
- pPList PList_allocate( );
- void PList_delete (pPList);
- void PList_deallocate (pPList);
- void PList_clear (pPList);
- pPList PList_appPListUnique (pPList, pPList source);
- pPList PList_appUnique (pPList, pEntity);
- pPList PList_append (pPList, pEntity);
- int PList_size (pPList);
- pEntity PList_item (pPList, int n);
- pEntity PList_next (pPList, void ** restart);
- int PList_inList (pPList, pEntity);
- void PList_remItem (pPList, pEntity);
-
- /***********************/
- /* Attached data tools */
- /***********************/
-
- pMeshDataId MD_newMeshDataId(const std::string="");
- pMeshDataId MD_lookupMeshDataId(const std::string);
- void MD_deleteMeshDataId(pMeshDataId);
-
- void EN_attachDataInt(pEntity, pMeshDataId, int);
- void EN_attachDataDbl(pEntity, pMeshDataId, double);
- void EN_attachDataPtr(pEntity, pMeshDataId, void *);
- void EN_attachDataP (pEntity, const char *, void *);
- void EN_attachDataI (pEntity, const char *, int);
-
- void EN_modifyDataInt(pEntity, pMeshDataId, int);
- void EN_modifyDataDbl(pEntity, pMeshDataId, double);
- void EN_modifyDataPtr(pEntity, pMeshDataId, void *);
- int EN_modifyDataP (pEntity, const char *, void *);
- int EN_modifyDataI (pEntity, const char *, int);
-
- void EN_deleteData(pEntity, pMeshDataId);
- void EN_removeData(pEntity, const char *);
-
- int EN_getDataInt(pEntity, pMeshDataId, int *);
- int EN_getDataDbl(pEntity, pMeshDataId, double *);
- int EN_getDataPtr(pEntity, pMeshDataId, void **);
- void * EN_dataP(pEntity, const char *);
- int EN_dataI(pEntity, const char *);
-
-}
-
-#endif
-
-
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseParallelInterface.h b/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseParallelInterface.h
deleted file mode 100644
index 34ee6c2..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MeshDataBaseParallelInterface.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: J.-F. Remacle, C. Dobrzynski, K. Hillewaert, G. Compere
-// -------------------------------------------------------------------
-
-#ifndef H_MESHDATABASEPARALLELINTEFACE
-#define H_MESHDATABASEPARALLELINTEFACE
-
-#include "MeshDataBaseInterface.h"
-#include "MeshDataBaseComm.h"
-#include "MeshDataBaseCommPeriodic.h"
-
-#include <vector>
-
-namespace MAd {
-
- class MDB_DataExchanger;
- class MDB_DataExchangerPeriodic;
-
- // -------------------------------------------------------------------
-
-#ifdef PARALLEL
- void M_writeParallel(pMesh, const char*, int version=2);
-#endif
-
- // -------------------------------------------------------------------
-
- /*! \brief Return true if on a parallel or periodic interface \ingroup internal */
- bool EN_isInterface(pEntity pv);
-
- /*! \brief Return true if on a parallel or periodic interface \ingroup parallel */
- bool V_isInterface(pVertex pv);
-
- /*! \brief Return true if pv is a (periodic) copy of vertex with tag id \ingroup parallel */
- bool V_corresponds(pVertex pv,int id);
-
- /*! \brief Return size of the list and list is an array containing
- proc numbers where pv exist except calling proc \ingroup parallel */
- int V_listInterface(pVertex pv, std::vector<int>* list);
-
- /*! \brief Return true if edge is //possibly// on a parallel or periodic interface \ingroup internal */
- bool E_isPotentialInterface(pMesh, pEdge);
-
- /*! \brief Return true if on a parallel or periodic interface \ingroup parallel */
- bool E_isInterface(pEdge);
-
- /*! \brief Return true if the edge corresponds either directly or periodically \ingroup parallel */
- bool E_corresponds(pEdge,int,int);
-
- /*! \brief Return true if on a parallel interface, distProc is
- (one of) the proc sharing the edge and distVt is a list
- of the pointers to the vertices on the distProc mesh \ingroup parallel */
- bool E_isInterface(pMesh, pEdge, int * distProc,
- std::vector<pVertex>* distVt);
-
- /*! \brief Return true if face is potentially on a parallel interface \ingroup internal */
- bool F_isPotentialInterface(pMesh, pFace);
-
- /*! \brief Return true if face is on a parallel interface \ingroup parallel */
- bool F_isInterface(pFace);
-
- /*! \brief Return true if on a parallel interface, distProc is the
- proc sharing the face and distVt is a list of the pointers
- to the vertices on the distant mesh \ingroup parallel */
- bool F_isInterface(pMesh, pFace, int * distProc,
- std::vector<pVertex>* distVt);
- /*! \brief Return true if on a parallel interface (always false) \ingroup parallel */
- bool R_isInterface(pRegion pr);
-
- // -------------------------------------------------------------------
-
- /*! \brief Fill the attached pointer containing the distant proc
- numbers and the distant node pointers \ingroup parallel */
- void V_createInfoInterface(pMesh mesh, pMeshDataId tagVertex);
-
- /*! \brief Fill the attached pointer containing the distant proc
- numbers and the distant edge pointers \ingroup parallel */
- void E_createInfoInterface(pMesh mesh, pMeshDataId tagEdge);
-
- /*! \brief Fill the attached pointer containing the distant proc
- numbers and the distant face pointers \ingroup parallel */
- void F_createInfoInterface(pMesh mesh, pMeshDataId tagFace);
-
-// void UpdateIDGlobal(pMesh mesh, int IdGlobal);
-
- // -------------------------------------------------------------------
-#ifdef PARALLEL
-
- // interface elt migration
- void Balance(pMesh mesh,MDB_DataExchanger &de);
- void Balance2(pMesh mesh,MDB_DataExchanger &de);
- void BalanceRandom(pMesh mesh,MDB_DataExchanger &de);
- int BalanceManifold(pMesh mesh,MDB_DataExchanger &de);
-
-#ifdef _HAVE_PARMETIS_
- // load balancing with metis
- void BalanceMetis(pMesh mesh,MDB_DataExchanger &de);
- void BalanceMetis2(pMesh mesh,MDB_DataExchanger &de);
-#endif
-
- // migration of elt tagged tagElt
- void loadBalancing(pMesh mesh,pMeshDataId tagElt, MDB_DataExchanger &de);
- void loadBalancing2(pMesh mesh,pMeshDataId tagElt, MDB_DataExchanger &de);
-#endif
-
- //Move periodic interfaces
- void BalancePeriodic(pMesh mesh,int dim,MDB_DataExchanger &de,
- MDB_DataExchangerPeriodic &deperiodic,std::vector<std::vector<int> >& transfo);
-
-// -------------------------------------------------------------------
-
-//migration of periodic elt
-void PeriodicInterfaceMigration(MAd::pMesh mesh,MAd::pMeshDataId tagElt,MAd::pMeshDataId tagMove,
- MAd::pMeshDataId tagTransfo, MDB_DataExchanger &de,
- MDB_DataExchangerPeriodic &deperiodic);
-
-
-void GroupPeriodicTetra(MAd::pMesh mesh, MDB_DataExchanger &de,
- MDB_DataExchangerPeriodic &deperiodic);
-
-
-// -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MobileObject.h b/debian/libmadlib-dev/usr/include/MAdLib/MobileObject.h
deleted file mode 100644
index e4da972..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MobileObject.h
+++ /dev/null
@@ -1,166 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_MOBILEOBJECT
-#define _H_MOBILEOBJECT
-
-#include "MeshDataBaseInterface.h"
-#include "AdaptInterface.h"
-#include "LocalSizeField.h"
-
-#include <set>
-#include <list>
-#include <utility>
-#include <vector>
-#include <string>
-
-namespace MAd {
-
- class MAdElasticityOp;
- class MAdStringFieldEvaluator;
-
- // -------------------------------------------------------------------
- // GCTODO: rewrite it simpler
- struct vDisplacement
- {
- vDisplacement(const vDisplacement&);
- vDisplacement(pVertex, double[3]);
- void scale(double);
- pVertex pv;
- double dxyz[3]; // displacement
- };
-
- struct vDisplacementLess
- {
- bool operator() (const vDisplacement&, const vDisplacement&) const;
- };
-
- // ----------------------------------------------------------------------
- enum velocityFormulation {
- NOFORMULATION,
- PARSED,
- TRANSLATION,
- FULLRANDOM,
- RANDOM_TRANSLATION,
- ISOMETRY,
- ROTATION,
- SHEAR_YZ,
- SHEAR_ZX,
- SHEAR_XY,
- BENCH2,
- CROSS_EXPANSION_WITH_ROTATION
- };
-
- // ----------------------------------------------------------------------
- class mobileObject {
-
- public:
-
- mobileObject(const pMesh m,std::string _name="");
- mobileObject(const mobileObject & mob);
- ~mobileObject();
-
- void setName(std::string nm) {name = nm;}
- void setDxKinematics(std::vector<std::string> _Vstr);
- void setVKinematics(velocityFormulation type, double V[3],
- double C[3], std::vector<std::string> _Vstr);
- void addLocalSField(LocalSizeField* lsf);
- void addGEntity(int type, int tag);
- void reAddVertices();
-
- void computePrescribedDisplacement (double t, double dt);
-
- void describe (std::ostream& out=std::cout) const;
- const std::set<pVertex> getVertices() const {return vertices;}
- std::set<vDisplacement,vDisplacementLess> getPrescribedDisplacement () const {return prescribedDisplacement;}
- std::set<LocalSizeField* > getSizes() const { return sizes; }
-
- private:
-
- void addVerticesOnGEntity(int type, int tag);
- void clearDisplacement();
-
- void randomVelocity(double* V);
- void velocityFunction(double xyz[3], double t, double* V);
-
- private:
-
- const pMesh mesh;
- std::string name;
- std::list<std::pair<int,int> > geomEntities; // list of (type,tag)
- std::set<pVertex> vertices;
-
- // Parameters describing the kinematics
- std::string prescribeType;
- // for position ...
- MAdStringFieldEvaluator* DxParsed; // displacement relative to and evaluated on initial position
- // ... or velocity
- velocityFormulation velType;
- double Cxyz[3], Vxyz[3];
- MAdStringFieldEvaluator* VParsed; // velocity evaluated on current position
-
- // // Parameters describing the size around
- std::set<LocalSizeField* > sizes;
-
- std::set<vDisplacement,vDisplacementLess> prescribedDisplacement;
- };
-
- // ----------------------------------------------------------------------
- class mobileObjectSet {
-
- public:
-
- mobileObjectSet();
- ~mobileObjectSet();
-
- // larger possible motion by trials without volume nodes repositioning
- int partlyMove(vertexMoveOp& vMoveOp, double t, double dt, double * part);
-
- // move objects and reposition volume nodes. Needs the elastic operator.
- void setupElasticRepositioning(pMesh mesh, double t, double dt,double chi=-1,
- bool meshIsCavity=true, int cavityThickness=3);
-
- // Advances the relocation as far as possible
- // Returns:
- // - 0: no relocation possible
- // - 1: advanced but not to the final position
- // - 2: reached the full prescribed relocation
- int reposition(double * ratio);
-
- // empty or fill the set
- void clear();
- void insert(mobileObject*);
-
- std::set<vDisplacement,vDisplacementLess> getPrescribedDisplacement () const {return prescribedDisplacement;}
- std::set<mobileObject*> getObjects() const {return mobSet;}
-
- void describe(std::ostream& out=std::cout) const;
-
- private:
-
- // compute the objects displacement in a time interval
- void computePrescribedDisplacement (double t, double dt) ;
-
- private:
-
- std::set<mobileObject*> mobSet;
- std::set<vDisplacement,vDisplacementLess> prescribedDisplacement;
-
- MAdElasticityOp * elasticOp;
- };
-
- // ----------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/ModelInterface.h b/debian/libmadlib-dev/usr/include/MAdLib/ModelInterface.h
deleted file mode 100644
index 5e1b0a4..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/ModelInterface.h
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef _H_MODELINTERFACE
-#define _H_MODELINTERFACE
-
-#include <string>
-#include <list>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
-#ifdef _HAVE_GMSH_
- typedef class GmshGEntity MAdGEntity;
- typedef class GmshGEntityLessThan MAdGEntityLessThan;
- typedef class GmshGRegion MAdGRegion;
- typedef class GmshGFace MAdGFace;
- typedef class GmshGEdge MAdGEdge;
- typedef class GmshGVertex MAdGVertex;
-#else
- typedef class NullGEntity MAdGEntity;
- typedef class NullGEntityLessThan MAdGEntityLessThan;
- typedef class NullGRegion MAdGRegion;
- typedef class NullGFace MAdGFace;
- typedef class NullGEdge MAdGEdge;
- typedef class NullGVertex MAdGVertex;
-#endif
-
- typedef MAdGEntity * pGEntity;
- typedef MAdGRegion * pGRegion;
- typedef MAdGFace * pGFace;
- typedef MAdGEdge * pGEdge;
- typedef MAdGVertex * pGVertex;
-
- typedef class MAdModel * pGModel;
-
- typedef class GM_RegionIterator * GRIter;
- typedef class GM_FaceIterator * GFIter;
- typedef class GM_EdgeIterator * GEIter;
- typedef class GM_VertexIterator * GVIter;
-
- typedef class PGList * pPGList;
-
- // -------------------------------------------------------------------
-
- // --- Model operators ---
-
- // create an empty model
- void GM_create(pGModel * model, std::string name="");
-
- // delete the model
- void GM_delete(pGModel model);
-
- // read a model, guess file format from extension
- int GM_read(pGModel model, const std::string name);
-
- // read particular file formats
- int GM_readFromMSH(pGModel model, const std::string name);
- int GM_readFromGEO(pGModel model, const std::string name);
- int GM_readFromSTEP(pGModel model, const std::string name);
- int GM_readFromBREP(pGModel model, const std::string name);
- int GM_readFromIGES(pGModel model, const std::string name);
-
- // void GM_diagnostics(const pGModel model);
-
- // Returns true if physical tags are used in the model
- bool GM_physical(const pGModel model);
-
- // Find the entity with the given tag.
- // Create it if it doesn't exist.
- pGEntity GM_entityByTag(const pGModel model, int type, int tag);
- pGRegion GM_regionByTag(const pGModel model, int tag);
- pGFace GM_faceByTag (const pGModel model, int tag);
- pGEdge GM_edgeByTag (const pGModel model, int tag);
- pGVertex GM_vertexByTag(const pGModel model, int tag);
-
- int GM_numVertices(const pGModel);
- int GM_numEdges(const pGModel);
- int GM_numFaces(const pGModel);
- int GM_numRegions(const pGModel);
-
- // --- Iterators ---
-
- GRIter GM_regionIter(pGModel);
- GFIter GM_faceIter(pGModel);
- GEIter GM_edgeIter(pGModel);
- GVIter GM_vertexIter(pGModel);
-
- pGRegion GRIter_next(GRIter);
- pGFace GFIter_next(GFIter);
- pGEdge GEIter_next(GEIter);
- pGVertex GVIter_next(GVIter);
-
- void GRIter_delete(GRIter);
- void GFIter_delete(GFIter);
- void GEIter_delete(GEIter);
- void GVIter_delete(GVIter);
-
- void GRIter_reset(GRIter);
- void GFIter_reset(GFIter);
- void GEIter_reset(GEIter);
- void GVIter_reset(GVIter);
-
- // --- Entity operators ---
-
- int GEN_tag(const pGEntity);
- int GEN_type(const pGEntity);
- void GEN_setPhysical(pGEntity, int dim, int tag);
- int GEN_physTag(const pGEntity);
- int GEN_physDim(const pGEntity);
-
-#ifdef _HAVE_GMSH_
- std::list<pGEntity> GEN_closure(const pGEntity);
-
- // --- Region operators ---
-
- std::list<pGFace> GR_faces(const pGRegion);
-
- // --- Face operators ---
-
- int GF_numRegions(const pGFace);
- std::list<pGEdge> GF_edges(const pGFace);
- bool GF_getParams(const pGFace, const double[3], double[2]);
- void GF_closestPoint(const pGFace, const double[3],
- const double[2], double[3]);
- void GF_xyz(const pGFace, double, double, double[3]);
- double GF_curvatureDiv(const pGFace, const double[2],
- double cMaxBound);
- double GF_curvatures(const pGFace, const double[2],
- double dirMax[3], double dirMin[3],
- double *curvMax, double *curvMin,
- double cMaxBound);
- void GF_centerOnGeodesic(const pGFace face, double t,
- const double e[2][2], double c[2]);
-
- // --- Edge operators ---
-
- std::list<pGVertex> GE_vertices(const pGEdge);
- void GE_closestPoint(const pGEdge, const double[3], double[3]);
- void GE_xyz(const pGEdge, double, double[3]);
- void GE_reparamOnFace(const pGEdge, const pGFace,
- double, double[2], double uClose[2]=NULL);
- bool GE_isSeam(const pGEdge, const pGFace);
- double GE_curvature(const pGEdge, double, double);
-
- // --- Vertex operators ---
-
- std::list<pGEdge> GV_edges(const pGVertex);
-
- void GV_reparamOnFace(const pGVertex, const pGFace, double [2],
- double uClose[2]=NULL);
- void GV_reparamOnEdge(const pGVertex, const pGEdge, double *,
- double uClose=-1.);
- bool GV_isOnSeam(const pGVertex, const pGFace);
-#else
- void GF_centerOnGeodesic(const pGFace face, double t,
- const double e[2][2], double c[2]);
-#endif
-
- // --- pGList operators ---
-
- pPGList PGList_new();
- pPGList PGList_allocate();
- void PGList_delete (pPGList);
- void PGList_deallocate (pPGList);
- void PGList_clear (pPGList);
- pPGList PGList_appPGListUnique (pPGList, pPGList source);
- pPGList PGList_appUnique (pPGList, pGEntity);
- pPGList PGList_append (pPGList, pGEntity);
- int PGList_size (pPGList);
- pGEntity PGList_item (pPGList, int n);
- pGEntity PGList_next (pPGList, void ** restart);
- int PGList_inList (pPGList, pGEntity);
- void PGList_remItem (pPGList, pGEntity);
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/MshTags.h b/debian/libmadlib-dev/usr/include/MAdLib/MshTags.h
deleted file mode 100644
index 8dd536b..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/MshTags.h
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Koen Hillewaert
-// -------------------------------------------------------------------
-
-#ifndef MSHTAGS__H
-#define MSHTAGS__H
-
-#include "MAdMessage.h"
-
-#include <string>
-#include <sstream>
-
-using namespace MAd;
-
-// Element types in .msh file format
-#define MSH_LIN_2 1
-#define MSH_TRI_3 2
-#define MSH_QUA_4 3
-#define MSH_TET_4 4
-#define MSH_HEX_8 5
-#define MSH_PRI_6 6
-#define MSH_PYR_5 7
-#define MSH_LIN_3 8
-#define MSH_TRI_6 9
-#define MSH_QUA_9 10
-#define MSH_TET_10 11
-#define MSH_HEX_27 12
-#define MSH_PRI_18 13
-#define MSH_PYR_14 14
-#define MSH_PNT 15
-#define MSH_QUA_8 16
-#define MSH_HEX_20 17
-#define MSH_PRI_15 18
-#define MSH_PYR_13 19
-#define MSH_TRI_9 20
-#define MSH_TRI_10 21
-#define MSH_TRI_12 22
-#define MSH_TRI_15 23
-#define MSH_TRI_15I 24
-#define MSH_TRI_21 25
-#define MSH_LIN_4 26
-#define MSH_LIN_5 27
-#define MSH_LIN_6 28
-#define MSH_TET_20 29
-#define MSH_TET_35 30
-#define MSH_TET_56 31
-#define MSH_TET_34 32
-#define MSH_MAX_ELEMENT_NODES 56
-
-inline
-int getNumVerticesForElementTypeMSH(int type)
-{
- switch (type) {
- case MSH_PNT : return 1;
- case MSH_LIN_2 : return 2;
- case MSH_LIN_3 : return 2 + 1;
- case MSH_LIN_4 : return 2 + 2;
- case MSH_LIN_5 : return 2 + 3;
- case MSH_LIN_6 : return 2 + 4;
- case MSH_TRI_3 : return 3;
- case MSH_TRI_6 : return 3 + 3;
- case MSH_TRI_9 : return 3 + 6;
- case MSH_TRI_10 : return 3 + 6 + 1;
- case MSH_TRI_12 : return 3 + 9;
- case MSH_TRI_15 : return 3 + 9 + 3;
- case MSH_TRI_15I : return 3 + 12;
- case MSH_TRI_21 : return 3 + 12 + 6;
- case MSH_QUA_4 : return 4;
- case MSH_QUA_8 : return 4 + 4;
- case MSH_QUA_9 : return 4 + 4 + 1;
- case MSH_TET_4 : return 4;
- case MSH_TET_10 : return 4 + 6;
- case MSH_HEX_8 : return 8;
- case MSH_HEX_20 : return 8 + 12;
- case MSH_HEX_27 : return 8 + 12 + 6 + 1;
- case MSH_PRI_6 : return 6;
- case MSH_PRI_15 : return 6 + 9;
- case MSH_PRI_18 : return 6 + 9 + 3;
- case MSH_PYR_5 : return 5;
- case MSH_PYR_13 : return 5 + 8;
- case MSH_PYR_14 : return 5 + 8 + 1;
- case MSH_TET_20 : return 20;
- case MSH_TET_35 : return 35;
- case MSH_TET_34 : return 34;
- case MSH_TET_56 : return 56;
- default:
- MAdMsgSgl::instance().error(__LINE__,__FILE__,
- "Unknown type of element %d", type);
- }
- return 0;
-}
-
-inline
-int getDimForElementTypeMSH(int type)
-{
- switch (type) {
- case MSH_PNT : return 0;
- case MSH_LIN_2 :
- case MSH_LIN_3 :
- case MSH_LIN_4 :
- case MSH_LIN_5 :
- case MSH_LIN_6 : return 1;
- case MSH_TRI_3 :
- case MSH_TRI_6 :
- case MSH_TRI_9 :
- case MSH_TRI_10 :
- case MSH_TRI_12 :
- case MSH_TRI_15 :
- case MSH_TRI_15I :
- case MSH_TRI_21 :
- case MSH_QUA_4 :
- case MSH_QUA_8 :
- case MSH_QUA_9 : return 2;
- case MSH_TET_4 :
- case MSH_TET_10 :
- case MSH_HEX_8 :
- case MSH_HEX_20 :
- case MSH_HEX_27 :
- case MSH_PRI_6 :
- case MSH_PRI_15 :
- case MSH_PRI_18 :
- case MSH_PYR_5 :
- case MSH_PYR_13 :
- case MSH_PYR_14 :
- case MSH_TET_20 :
- case MSH_TET_35 :
- case MSH_TET_34 :
- case MSH_TET_56 : return 3;
- default:
- MAdMsgSgl::instance().error(__LINE__,__FILE__,
- "Unknown type of element %d", type);
- }
- return -1;
-}
-
-inline
-std::string getElementName(int type) {
-
- std::string name;
-
- switch (type) {
- case MSH_PNT : name = "Point"; break;
- case MSH_LIN_2 : name = "Linear edge"; break;
- case MSH_LIN_3 : name = "Quadratic edge"; break;
- case MSH_LIN_4 : name = "Cubic edge"; break;
- case MSH_LIN_5 : name = "Quartic edge"; break;
- case MSH_LIN_6 : name = "Pentic edge"; break;
- case MSH_TRI_3 : name = "Linear triangle"; break;
- case MSH_TRI_6 : name = "Quadratic triangle"; break;
- case MSH_TRI_9 : name = "Cubic serendipity triangle"; break;
- case MSH_TRI_10 : name = "Cubic triangle"; break;
- case MSH_TRI_12 : name = "Quartic serendipity triangle"; break;
- case MSH_TRI_15 : name = "Quartic triangle"; break;
- case MSH_TRI_15I : name = "Pentic serendipity triangle"; break;
- case MSH_TRI_21 : name = "Pentic triangle"; break;
- case MSH_QUA_4 : name = "Bilinear Quadrangle"; break;
- case MSH_QUA_8 : name = "Quadratic serendipity quadrangle"; break;
- case MSH_QUA_9 : name = "Quadratic quadrangle"; break;
- case MSH_TET_4 : name = "Linear tetrahedron"; break;
- case MSH_TET_10 : name = "Quadratic tetrahedron"; break;
- case MSH_HEX_8 : name = "Trilinear hexahedron"; break;
- case MSH_HEX_20 : name = "Quadratic edge serendipity hexahedron"; break;
- case MSH_HEX_27 : name = "Quadratic serendipity hexahedron"; break;
- case MSH_PRI_6 : name = "Linear prism"; break;
- case MSH_PRI_15 : name = "Quadratic edge serendipity prism"; break;
- case MSH_PRI_18 : name = "Quadratic serendipity prism"; break;
- case MSH_PYR_5 : name = "Linear pyramid"; break;
- case MSH_PYR_13 : name = "Quadratic edge serendipity pyramid"; break;
- case MSH_PYR_14 : name = "Quadratic serendipty pyramid"; break;
- case MSH_TET_20 : name = "Cubic tetrahedron";break;
- case MSH_TET_35 : name = "Quartic tetrahedron";break;
- case MSH_TET_34 : name = "Quartic serendipity tetrahedron";break;
- case MSH_TET_56 : name = "Pentic tetrahedron";break;
- default:
- std::stringstream ss; break;
- ss << "Unknown type of element (tag " << type << ")"; break;
- name = ss.str();
- }
- return name;
-}
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/PWLinearSField.h b/debian/libmadlib-dev/usr/include/MAdLib/PWLinearSField.h
deleted file mode 100644
index d7650cd..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/PWLinearSField.h
+++ /dev/null
@@ -1,121 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_PWLINEARSFIELD
-#define _H_PWLINEARSFIELD
-
-#include "DiscreteSF.h"
-#ifdef PARALLEL
-#include "MeshDataBaseComm.h"
-#endif
-
-#include <set>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- class PWLSField : public DiscreteSF
- {
- public:
-
- PWLSField(pMesh, std::string name="");
- ~PWLSField();
-
- DiscreteSFType discretization() const { return VERTEX_P1_DSFTYPE; }
-
- // delete sizes
- void cleanUp();
-
- // Intersect with another size field
- void intersect(const pSField);
-
- // smooth the size field
- void smooth(double);
-
- // set a size at all vertices
- void setCurrentSize();
- void setCurvatureSize(bool aniso,
- double alpha=2., // prescribe 2*PI*alpha edges around a circle
- double hMin=1.e-4); // minimal size
- void setAllVSizes(pMSize);
- void setAllVSizes(double[3][3], double[3]);
- void setAllVSizes(double);
- void scale(double);
-
- // get the size at a location (allocate space!)
- pMSize getSize(const pVertex) const;
- pMSize getSizeOnEntity(const pEntity, const double[3]) const;
-
- // get the size at a vertex (do not allocate space)
- const pMSize findSize(const pVertex) const;
- pMSize findSize(const pVertex);
-
- // edge length (squared)
- double SF_VV_lengthSq(const pVertex, const pVertex) const;
- double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const;
-
- // face area (squared)
- double SF_F_areaSq(const pFace) const;
- double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const;
-
- // region volume
- double SF_R_volume(const pRegion) const;
- double SF_XYZ_volume(const double[4][3], const pMSize) const;
-
- // center and its associated size
- double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const;
- double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const;
-
- protected:
-
- pMSize getSizeOnEdge(const pEdge, const double[3]) const;
- pMSize getSizeOnEdgeParam(const pEdge, const double) const;
- pMSize getSizeOnFace(const pFace, const double[3]) const;
- pMSize getSizeOnFaceParam(const pFace, const double[2]) const;
- pMSize getSizeOnRegion(const pRegion, const double[3]) const;
- pMSize getSizeOnRegionParam(const pRegion, const double[3]) const;
-
- void smoothOnEdge(const pEdge, double, std::set<pEdge>*);
- };
-
- // -------------------------------------------------------------------
-#ifdef PARALLEL
- class PWLSFieldDE : public MDB_DataExchanger
- {
- public :
-
- PWLSField *field;
-
- PWLSFieldDE(PWLSField *f);
- virtual ~PWLSFieldDE();
-
- virtual void * sendData (pEntity pe, // in
- int iProcDest, // in
- int &_size );
-
- virtual void receiveData (pEntity pe, //in
- int iProcSender, //in
- void *buf );
-
- virtual void deleteExternalData(pEntity pe) const;
- };
-#endif
-
-}
-
-// -------------------------------------------------------------------
-
-#endif
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/SizeField.h b/debian/libmadlib-dev/usr/include/MAdLib/SizeField.h
deleted file mode 100644
index d5596b1..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/SizeField.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#include "SizeFieldBase.h"
-#include "DiscreteSF.h"
-#include "PWLinearSField.h"
-#include "LocalSizeField.h"
-#include "AnalyticalSField.h"
-#include "BackgroundSF.h"
diff --git a/debian/libmadlib-dev/usr/include/MAdLib/SizeFieldBase.h b/debian/libmadlib-dev/usr/include/MAdLib/SizeFieldBase.h
deleted file mode 100644
index c65c9fd..0000000
--- a/debian/libmadlib-dev/usr/include/MAdLib/SizeFieldBase.h
+++ /dev/null
@@ -1,101 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_SIZEFIELDBASE
-#define _H_SIZEFIELDBASE
-
-#include "MeshDataBaseInterface.h"
-
-#include <string>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- enum sFieldType {
- UNKNOWNSFIELDTYPE,
- NULLSFIELD,
- DISCRETESFIELD,
- ANALYTICALSFIELD,
- LOCALSFIELD,
- BACKGROUNDSFIELD
- };
-
- // -------------------------------------------------------------------
- typedef class SizeFieldBase * pSField;
- typedef class MeshSizeBase * pMSize;
-
- // -------------------------------------------------------------------
- class SizeFieldBase
- {
- public:
-
- SizeFieldBase(std::string _name=""): name(_name) {};
- virtual ~SizeFieldBase() {};
-
- public:
-
- virtual sFieldType getType() const = 0 ;
- std::string getName() const { return name; }
-
- virtual void scale(double) = 0;
-
- public:
-
- // edge length (squared)
- virtual double SF_E_lengthSq(const pEdge) const;
- virtual double SF_VV_lengthSq(const pVertex,const pVertex) const = 0;
- virtual double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const = 0;
-
- // face area (squared)
- virtual double SF_F_areaSq(const pFace) const = 0;
- virtual double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const = 0;
-
- // region volume
- virtual double SF_R_volume(const pRegion) const = 0;
- virtual double SF_XYZ_volume(const double[4][3], const pMSize) const = 0;
-
- // center and its associated size
- virtual double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const = 0;
- virtual double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const = 0;
- virtual double SF_XYZ_center(const double[2][3], const pMSize[2],
- double[3], double * reducSq, pMSize *) const;
-
- public:
-
- // get the size at a location
- // --- Memory is allocated ! ---
- virtual pMSize getSize(const pVertex) const = 0;
- virtual pMSize getSizeOnEntity(const pEntity,
- const double[3]) const = 0;
-
- public:
-
- // visualisation of the isotropic size in a .pos file
- void printPosIsotropic (const pMesh mesh, const std::string name);
- // visualisation of the anisotropic size in a .pos file
- void printPosAnisotropic(const pMesh mesh, const std::string baseName);
-
- private:
-
- std::string name;
-
- };
-
-}
-
-// -------------------------------------------------------------------
-
-#endif
diff --git a/debian/libmadlib-dev/usr/lib/libMAdLib.a b/debian/libmadlib-dev/usr/lib/libMAdLib.a
deleted file mode 100644
index 011be87..0000000
Binary files a/debian/libmadlib-dev/usr/lib/libMAdLib.a and /dev/null differ
diff --git a/debian/libmadlib-dev/usr/lib/libMAdLib.la b/debian/libmadlib-dev/usr/lib/libMAdLib.la
deleted file mode 100644
index 82c52bc..0000000
--- a/debian/libmadlib-dev/usr/lib/libMAdLib.la
+++ /dev/null
@@ -1,41 +0,0 @@
-# libMAdLib.la - a libtool library file
-# Generated by ltmain.sh (GNU libtool) 2.2.6 Debian-2.2.6a-1ubuntu1
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='libMAdLib.so.0'
-
-# Names of this library.
-library_names='libMAdLib.so.0.0.0 libMAdLib.so.0 libMAdLib.so'
-
-# The name of the static archive.
-old_library='libMAdLib.a'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags=''
-
-# Libraries that this one depends upon.
-dependency_libs=' -lm'
-
-# Names of additional weak libraries provided by this library
-weak_library_names=''
-
-# Version information for libMAdLib.
-current=0
-age=0
-revision=0
-
-# Is this an already installed library?
-installed=yes
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=no
-
-# Files to dlopen/dlpreopen
-dlopen=''
-dlpreopen=''
-
-# Directory that this library needs to be installed in:
-libdir='/usr/lib'
diff --git a/debian/libmadlib-dev/usr/lib/libMAdLib.so b/debian/libmadlib-dev/usr/lib/libMAdLib.so
deleted file mode 120000
index c88e777..0000000
--- a/debian/libmadlib-dev/usr/lib/libMAdLib.so
+++ /dev/null
@@ -1 +0,0 @@
-libMAdLib.so.0.0.0
\ No newline at end of file
diff --git a/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/README b/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/README
deleted file mode 100644
index 63bf558..0000000
--- a/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/README
+++ /dev/null
@@ -1,43 +0,0 @@
-MAdLib - README file.
-
-See the Copyright.txt, License.txt and Credits.txt files for copyright,
-license and authors informations. You should have received a copy of
-these files along with MAdLib. If not, see <http://www.madlib.be/license/>.
-
-Please report bugs and problems to <contrib at madlib.be>.
-
-To compile and install the MAdLib library, you should first run the
-following command:
- make -f Makefile.svn
-This will generate the 'configure' and 'Makefile.in' files required in the
-second step. You need the GNU Autotools (aclocal, autoconf, automake) to
-generate these files.
-
-You can then compile the library by typing
- ./configure [opts];
- make;
- make install;
-
-If you want to compile and install some benchmark executables, type
- ./configure --enable-benchmarks [opts];
- make install-bench;
-
-The documentation is generated and installed automatically with the
-previous compilations if you have Doxygen installed but you can also
-generate it (in doc/) by
- make doc;
-
-The pkgconfig file MAdLib.pc is generated and installed by
- make pc
-
-Note that the configure and make commands can be called from any
-third-part directory. All files built during the compilation
-processes will be stored in that directory, except the documentation.
-
-Also note that you need a linear system solver for the benchmarks that include
-the global node repositioning algorithm, like 'moveIt/example/tube' (for inst. PETSc)
-and a library to compute the distance to a cloud of points (for inst. ANN: add
---enable-ann in the configure command) for benchmarks including local size fields.
-
-To see what options are available, type
- ./configure --help
diff --git a/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/changelog.Debian.gz b/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/changelog.Debian.gz
deleted file mode 100644
index d8392dd..0000000
Binary files a/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/changelog.Debian.gz and /dev/null differ
diff --git a/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/copyright b/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/copyright
deleted file mode 100644
index 6c65adb..0000000
--- a/debian/libmadlib-dev/usr/share/doc/libmadlib-dev/copyright
+++ /dev/null
@@ -1,30 +0,0 @@
-This package was debianized by Christophe Prud'homme <prudhomm at debian.org> on
-Tue, 04 Aug 2009 07:26:08 +0200.
-
-It was downloaded from <url:http://www.madlib.be>
-
-Upstream Authors:
-
- Jean-François Remacle <jean-francois.remacle at uclouvain.be>,
- Gaëtan Compere <gaetan.compere at uclouvain.be>
-
-Copyright:
-
- (C) 2008-2009 by the Université catholique de Louvain (UCL), Belgium
-
-
-License:
-
- /usr/share/common-licenses/LGPL-3
-
-The Debian packaging is:
-
- Copyright (C) 2009 Christophe Prud'homme <prudhomm at debian.org>
-
-and is licensed under the GPL version 3,
-see `/usr/share/common-licenses/GPL-3'.
-
-
-ANN (in Contrib/ANN) /usr/share/common-licenses/LGPL-2
-Mathex (in Contrib/Mathex) /usr/share/common-licenses/LGPL-2
-
diff --git a/debian/libmadlib/DEBIAN/control b/debian/libmadlib/DEBIAN/control
deleted file mode 100644
index 5dfd32e..0000000
--- a/debian/libmadlib/DEBIAN/control
+++ /dev/null
@@ -1,30 +0,0 @@
-Package: libmadlib
-Source: madlib
-Version: 1.3.0-1
-Architecture: amd64
-Maintainer: Christophe Prud'homme <prudhomm at debian.org>
-Installed-Size: 1140
-Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1)
-Section: libs
-Priority: extra
-Homepage: http://www.madlib.be
-Description: mesh adaptation library
- Dynamic libraries for MAdLib.
- .
- MAdLib is a library that performs global node repositioning and mesh
- adaptation by local mesh modifications on tetrahedral or triangular
- meshes. It is designed to frequently adapt the mesh in transient
- computations. MAdLib is written in C++.
- .
- The adaptation procedure is driven by two objectives:
- .
- make the edge lengths as close as possible to a (non-homogenous)
- prescribed length,
- .
- maintain a satisfying element quality everywhere.
- .
- MAdLib can be used in transient computations in order to maintain a
- satisfying element quality (moving boundaries, multiphase flows with
- interface tracking, ...) or/and to apply selective refinements and
- coarsenings (error estimators based, interface capturing: shocks,
- free surfaces, ...).
diff --git a/debian/libmadlib/DEBIAN/md5sums b/debian/libmadlib/DEBIAN/md5sums
deleted file mode 100644
index 786ac9f..0000000
--- a/debian/libmadlib/DEBIAN/md5sums
+++ /dev/null
@@ -1,5 +0,0 @@
-aeffe19ce4f632b4f4e60cde9105eab1 usr/lib/libMAdLib.so.0.0.0
-fe7617a634e1f3447736b5d7432f37af usr/share/doc/libmadlib/changelog.Debian.gz
-cfc8a7d9bc80f4396ba17f3291496e50 usr/share/doc/libmadlib/README.Debian
-05ea5986bb337a57328131d022139276 usr/share/doc/libmadlib/copyright
-8b7defd24173f33f1667becd07660d53 usr/share/doc/libmadlib/README
diff --git a/debian/libmadlib/DEBIAN/postinst b/debian/libmadlib/DEBIAN/postinst
deleted file mode 100755
index 379f1fa..0000000
--- a/debian/libmadlib/DEBIAN/postinst
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-set -e
-# Automatically added by dh_makeshlibs
-if [ "$1" = "configure" ]; then
- ldconfig
-fi
-# End automatically added section
diff --git a/debian/libmadlib/DEBIAN/postrm b/debian/libmadlib/DEBIAN/postrm
deleted file mode 100755
index 3e73d38..0000000
--- a/debian/libmadlib/DEBIAN/postrm
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-set -e
-# Automatically added by dh_makeshlibs
-if [ "$1" = "remove" ]; then
- ldconfig
-fi
-# End automatically added section
diff --git a/debian/libmadlib/DEBIAN/shlibs b/debian/libmadlib/DEBIAN/shlibs
deleted file mode 100644
index faccc60..0000000
--- a/debian/libmadlib/DEBIAN/shlibs
+++ /dev/null
@@ -1 +0,0 @@
-libMAdLib 0 libmadlib
diff --git a/debian/libmadlib/usr/lib/libMAdLib.so.0 b/debian/libmadlib/usr/lib/libMAdLib.so.0
deleted file mode 120000
index c88e777..0000000
--- a/debian/libmadlib/usr/lib/libMAdLib.so.0
+++ /dev/null
@@ -1 +0,0 @@
-libMAdLib.so.0.0.0
\ No newline at end of file
diff --git a/debian/libmadlib/usr/lib/libMAdLib.so.0.0.0 b/debian/libmadlib/usr/lib/libMAdLib.so.0.0.0
deleted file mode 100644
index 8831bc1..0000000
Binary files a/debian/libmadlib/usr/lib/libMAdLib.so.0.0.0 and /dev/null differ
diff --git a/debian/libmadlib/usr/share/doc/libmadlib/README b/debian/libmadlib/usr/share/doc/libmadlib/README
deleted file mode 100644
index 63bf558..0000000
--- a/debian/libmadlib/usr/share/doc/libmadlib/README
+++ /dev/null
@@ -1,43 +0,0 @@
-MAdLib - README file.
-
-See the Copyright.txt, License.txt and Credits.txt files for copyright,
-license and authors informations. You should have received a copy of
-these files along with MAdLib. If not, see <http://www.madlib.be/license/>.
-
-Please report bugs and problems to <contrib at madlib.be>.
-
-To compile and install the MAdLib library, you should first run the
-following command:
- make -f Makefile.svn
-This will generate the 'configure' and 'Makefile.in' files required in the
-second step. You need the GNU Autotools (aclocal, autoconf, automake) to
-generate these files.
-
-You can then compile the library by typing
- ./configure [opts];
- make;
- make install;
-
-If you want to compile and install some benchmark executables, type
- ./configure --enable-benchmarks [opts];
- make install-bench;
-
-The documentation is generated and installed automatically with the
-previous compilations if you have Doxygen installed but you can also
-generate it (in doc/) by
- make doc;
-
-The pkgconfig file MAdLib.pc is generated and installed by
- make pc
-
-Note that the configure and make commands can be called from any
-third-part directory. All files built during the compilation
-processes will be stored in that directory, except the documentation.
-
-Also note that you need a linear system solver for the benchmarks that include
-the global node repositioning algorithm, like 'moveIt/example/tube' (for inst. PETSc)
-and a library to compute the distance to a cloud of points (for inst. ANN: add
---enable-ann in the configure command) for benchmarks including local size fields.
-
-To see what options are available, type
- ./configure --help
diff --git a/debian/libmadlib/usr/share/doc/libmadlib/README.Debian b/debian/libmadlib/usr/share/doc/libmadlib/README.Debian
deleted file mode 100644
index 91b8dd0..0000000
--- a/debian/libmadlib/usr/share/doc/libmadlib/README.Debian
+++ /dev/null
@@ -1,9 +0,0 @@
-madlib for Debian
------------------
-
-The header files are in /usr/include/MAdLib.
-
-In order to link yor own code with MAdLib use the following link flags
- -lMAdLib -llapack -lblas -lm
-
- -- Christophe Prud'homme <prudhomm at debian.org>, Tue, 4 Aug 2009 08:36:30 +0200
diff --git a/debian/libmadlib/usr/share/doc/libmadlib/changelog.Debian.gz b/debian/libmadlib/usr/share/doc/libmadlib/changelog.Debian.gz
deleted file mode 100644
index d8392dd..0000000
Binary files a/debian/libmadlib/usr/share/doc/libmadlib/changelog.Debian.gz and /dev/null differ
diff --git a/debian/libmadlib/usr/share/doc/libmadlib/copyright b/debian/libmadlib/usr/share/doc/libmadlib/copyright
deleted file mode 100644
index 6c65adb..0000000
--- a/debian/libmadlib/usr/share/doc/libmadlib/copyright
+++ /dev/null
@@ -1,30 +0,0 @@
-This package was debianized by Christophe Prud'homme <prudhomm at debian.org> on
-Tue, 04 Aug 2009 07:26:08 +0200.
-
-It was downloaded from <url:http://www.madlib.be>
-
-Upstream Authors:
-
- Jean-François Remacle <jean-francois.remacle at uclouvain.be>,
- Gaëtan Compere <gaetan.compere at uclouvain.be>
-
-Copyright:
-
- (C) 2008-2009 by the Université catholique de Louvain (UCL), Belgium
-
-
-License:
-
- /usr/share/common-licenses/LGPL-3
-
-The Debian packaging is:
-
- Copyright (C) 2009 Christophe Prud'homme <prudhomm at debian.org>
-
-and is licensed under the GPL version 3,
-see `/usr/share/common-licenses/GPL-3'.
-
-
-ANN (in Contrib/ANN) /usr/share/common-licenses/LGPL-2
-Mathex (in Contrib/Mathex) /usr/share/common-licenses/LGPL-2
-
diff --git a/debian/madlib-doc/DEBIAN/control b/debian/madlib-doc/DEBIAN/control
deleted file mode 100644
index 0221d7d..0000000
--- a/debian/madlib-doc/DEBIAN/control
+++ /dev/null
@@ -1,29 +0,0 @@
-Package: madlib-doc
-Source: madlib
-Version: 1.3.0-1
-Architecture: all
-Maintainer: Christophe Prud'homme <prudhomm at debian.org>
-Installed-Size: 60
-Section: doc
-Priority: extra
-Homepage: http://www.madlib.be
-Description: mesh adaptation library
- Documentation, Examples and tutorial for MAdLib.
- .
- MAdLib is a library that performs global node repositioning and mesh
- adaptation by local mesh modifications on tetrahedral or triangular
- meshes. It is designed to frequently adapt the mesh in transient
- computations. MAdLib is written in C++.
- .
- The adaptation procedure is driven by two objectives:
- .
- make the edge lengths as close as possible to a (non-homogenous)
- prescribed length,
- .
- maintain a satisfying element quality everywhere.
- .
- MAdLib can be used in transient computations in order to maintain a
- satisfying element quality (moving boundaries, multiphase flows with
- interface tracking, ...) or/and to apply selective refinements and
- coarsenings (error estimators based, interface capturing: shocks,
- free surfaces, ...).
diff --git a/debian/madlib-doc/DEBIAN/md5sums b/debian/madlib-doc/DEBIAN/md5sums
deleted file mode 100644
index aec7dfb..0000000
--- a/debian/madlib-doc/DEBIAN/md5sums
+++ /dev/null
@@ -1,7 +0,0 @@
-fe7617a634e1f3447736b5d7432f37af usr/share/doc/madlib-doc/changelog.Debian.gz
-23495be71f8e631e6c8654feff9033fe usr/share/doc/madlib-doc/examples/Tutorial/Makefile
-771aac386f8bc46cad0940cf1f199d88 usr/share/doc/madlib-doc/examples/Tutorial/MAdLibInterface.h.gz
-047056d9635d96f6f9be6c99b5e80869 usr/share/doc/madlib-doc/examples/Tutorial/MAdLibInterface.cpp.gz
-d1461f7f7d33c78735f9eca3f1b7fb66 usr/share/doc/madlib-doc/examples/variables
-05ea5986bb337a57328131d022139276 usr/share/doc/madlib-doc/copyright
-8b7defd24173f33f1667becd07660d53 usr/share/doc/madlib-doc/README
diff --git a/debian/madlib-doc/usr/share/doc/madlib-doc/README b/debian/madlib-doc/usr/share/doc/madlib-doc/README
deleted file mode 100644
index 63bf558..0000000
--- a/debian/madlib-doc/usr/share/doc/madlib-doc/README
+++ /dev/null
@@ -1,43 +0,0 @@
-MAdLib - README file.
-
-See the Copyright.txt, License.txt and Credits.txt files for copyright,
-license and authors informations. You should have received a copy of
-these files along with MAdLib. If not, see <http://www.madlib.be/license/>.
-
-Please report bugs and problems to <contrib at madlib.be>.
-
-To compile and install the MAdLib library, you should first run the
-following command:
- make -f Makefile.svn
-This will generate the 'configure' and 'Makefile.in' files required in the
-second step. You need the GNU Autotools (aclocal, autoconf, automake) to
-generate these files.
-
-You can then compile the library by typing
- ./configure [opts];
- make;
- make install;
-
-If you want to compile and install some benchmark executables, type
- ./configure --enable-benchmarks [opts];
- make install-bench;
-
-The documentation is generated and installed automatically with the
-previous compilations if you have Doxygen installed but you can also
-generate it (in doc/) by
- make doc;
-
-The pkgconfig file MAdLib.pc is generated and installed by
- make pc
-
-Note that the configure and make commands can be called from any
-third-part directory. All files built during the compilation
-processes will be stored in that directory, except the documentation.
-
-Also note that you need a linear system solver for the benchmarks that include
-the global node repositioning algorithm, like 'moveIt/example/tube' (for inst. PETSc)
-and a library to compute the distance to a cloud of points (for inst. ANN: add
---enable-ann in the configure command) for benchmarks including local size fields.
-
-To see what options are available, type
- ./configure --help
diff --git a/debian/madlib-doc/usr/share/doc/madlib-doc/changelog.Debian.gz b/debian/madlib-doc/usr/share/doc/madlib-doc/changelog.Debian.gz
deleted file mode 100644
index d8392dd..0000000
Binary files a/debian/madlib-doc/usr/share/doc/madlib-doc/changelog.Debian.gz and /dev/null differ
diff --git a/debian/madlib-doc/usr/share/doc/madlib-doc/copyright b/debian/madlib-doc/usr/share/doc/madlib-doc/copyright
deleted file mode 100644
index 6c65adb..0000000
--- a/debian/madlib-doc/usr/share/doc/madlib-doc/copyright
+++ /dev/null
@@ -1,30 +0,0 @@
-This package was debianized by Christophe Prud'homme <prudhomm at debian.org> on
-Tue, 04 Aug 2009 07:26:08 +0200.
-
-It was downloaded from <url:http://www.madlib.be>
-
-Upstream Authors:
-
- Jean-François Remacle <jean-francois.remacle at uclouvain.be>,
- Gaëtan Compere <gaetan.compere at uclouvain.be>
-
-Copyright:
-
- (C) 2008-2009 by the Université catholique de Louvain (UCL), Belgium
-
-
-License:
-
- /usr/share/common-licenses/LGPL-3
-
-The Debian packaging is:
-
- Copyright (C) 2009 Christophe Prud'homme <prudhomm at debian.org>
-
-and is licensed under the GPL version 3,
-see `/usr/share/common-licenses/GPL-3'.
-
-
-ANN (in Contrib/ANN) /usr/share/common-licenses/LGPL-2
-Mathex (in Contrib/Mathex) /usr/share/common-licenses/LGPL-2
-
diff --git a/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/MAdLibInterface.cpp.gz b/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/MAdLibInterface.cpp.gz
deleted file mode 100644
index 830e8c6..0000000
Binary files a/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/MAdLibInterface.cpp.gz and /dev/null differ
diff --git a/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/MAdLibInterface.h.gz b/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/MAdLibInterface.h.gz
deleted file mode 100644
index 76687ad..0000000
Binary files a/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/MAdLibInterface.h.gz and /dev/null differ
diff --git a/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/Makefile b/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/Makefile
deleted file mode 100644
index b32d126..0000000
--- a/debian/madlib-doc/usr/share/doc/madlib-doc/examples/Tutorial/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# -------------------------------------------------------------------
-# MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-#
-# See the Copyright.txt and License.txt files for license information.
-# You should have received a copy of these files along with MAdLib.
-# If not, see <http://www.madlib.be/license/>
-#
-# Please report all bugs and problems to <contrib at madlib.be>
-#
-# Authors: Gaetan Compere, Jean-Francois Remacle
-# -------------------------------------------------------------------
-
-include ../variables
-
-INC = ${MAdLib_INCLUDES}\
- ${DASH}I$(MAdROOT)/Tutorial\
- ${DASH}I$(MAdROOT)/Geo\
- ${DASH}I$(MAdROOT)/Mesh\
- ${DASH}I$(MAdROOT)/Common\
- ${DASH}I$(MAdROOT)/Adapt\
- ${DASH}I$(MAdROOT)/Adapt/constraint\
- ${DASH}I$(MAdROOT)/Adapt/operator\
- ${DASH}I$(MAdROOT)/Adapt/output\
- ${DASH}I$(MAdROOT)/Adapt/quality\
- ${DASH}I$(MAdROOT)/Adapt/repositioning\
- ${DASH}I$(MAdROOT)/Adapt/sizeField\
- ${DASH}I$(MAdROOT)/Adapt/utils
-
-CXXFLAGS = ${OPTIM} ${MAdLib_DEFS} ${FLAGS} ${INC} ${SYSINCLUDE}
-
-SRC = MAdLibInterface.cc
-
-OBJ = ${SRC:.cc=${OBJEXT}}
-
-.SUFFIXES: ${OBJEXT} .cc
-
-.cc${OBJEXT}:
- ${CXX} ${CXXFLAGS} ${DASH}c $< ${DASH}o $@
-
-build: ${OBJ}
-
-clean:
- ${RM} */*.o *.o *.obj
-
-purge:
-
-depend:
- (sed '/^# DO NOT DELETE THIS LINE/q' Makefile && \
- ${CXX} -MM ${CXXFLAGS} ${SRC} | sed 's/.o:/$${OBJEXT}:/g' \
- ) > Makefile.new
- cp Makefile Makefile.bak
- cp Makefile.new Makefile
- rm -f Makefile.new
\ No newline at end of file
diff --git a/debian/madlib-doc/usr/share/doc/madlib-doc/examples/variables b/debian/madlib-doc/usr/share/doc/madlib-doc/examples/variables
deleted file mode 100644
index e69004f..0000000
--- a/debian/madlib-doc/usr/share/doc/madlib-doc/examples/variables
+++ /dev/null
@@ -1,87 +0,0 @@
-# -------------------------------------------------------------------
-# MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-#
-# See the Copyright.txt and License.txt files for license information.
-# You should have received a copy of these files along with MAdLib.
-# If not, see <http://www.madlib.be/license/>
-#
-# Please report all bugs and problems to <contrib at madlib.be>
-#
-# Authors: Gaetan Compere, Jean-Francois Remacle
-# -------------------------------------------------------------------
-
-# OS and host
-UNAME=Linux
-HOSTNAME=orphu
-
-# The names of the C and C++ compilers
-CC=cc
-CXX=g++
-
-# If you need to link to dynamic libraries installed in non-standard
-# locations and are using the GNU linker, you may want to add
-# '-Wl,--rpath,/path/to/dynamic/library' to the 'LINKER' variable
-# below. Alternatively, you could edit the 'LD_LIBARY_PATH'
-# environement variable or use the 'ldconfig' program.
-LINKER=g++
-
-# All compiler flags except optimization flags
-FLAGS=@FLAGS@
-
-# Flag for c++ compiler
-CXXFLAGS=-g -O2 -g -Wall -O2 -D_FORTIFY_SOURCE=0 -ansi
-
-# Additional system includes
-SYSINCLUDE=
-
-# Compiler optimization flags
-OPTIM=@OPTIM@
-
-# MAdLib definitions
-MAdLib_DEFS= -D_HAVE_ANN_ -D_HAVE_MATHEX_ -D_HAVE_BLAS_ -D_HAVE_BLAS_ -DHAVE_BLAS -D_HAVE_LAPACK_ -DHAVE_LAPACK -DHAVE_64BIT_SIZE_T
-
-# MAdLib subdirectories
-MAdLib_DIRS=Contrib/ANN Common/ Geo/ Mesh/ Adapt/ . Benchmarks/checkMesh Benchmarks/meshInfo Benchmarks/optimize Benchmarks/moveIt
-
-# MAdLib libraries
-MAdLib_LIBS=-L${exec_prefix}/lib -Wl,-rpath,${exec_prefix}/lib -lMAdLib -llapack -lcblas -lf77blas -latlas -lm
-
-# MAdLib include directories
-MAdLib_INCLUDES= -I$(top_srcdir)/Geo -I$(top_srcdir)/Mesh -I$(top_srcdir)/Common -I$(top_srcdir)/Adapt -I$(top_srcdir)/Adapt/constraint -I$(top_srcdir)/Adapt/operator -I$(top_srcdir)/Adapt/output -I$(top_srcdir)/Adapt/quality -I$(top_srcdir)/Adapt/repositioning -I$(top_srcdir)/Adapt/sizeField -I$(top_srcdir)/Adapt/utils -I$(top_srcdir)/Contrib/ANN/include/ANN -I$(top_srcdir)/Contrib/ANN/include/ANN -I$(top_srcdir)/Contrib/ANN/src -I./Contrib/mathex -I.././Contrib/mathex
-
-# MAdLib benchmarks subdirectories
-#MAdLib_BENCHDIRS=Benchmarks/checkMesh Benchmarks/meshInfo Benchmarks/optimize Benchmarks/moveIt
-
-# How you create a static library on this machine
-AR=ar
-ARFLAGS=
-RANLIB=ranlib
-
-# The symbol used in front of compiler flags
-DASH=-
-
-# The extension to use for object files, libraries and executables
-OBJEXT=.o
-LIBEXT=@LIBEXT@
-EXEEXT=
-
-# File handling commands
-RM=rm -f
-
-# Documentation genration
-DOXYGEN=doxygen doxygen.config
-
-# Installation directories
-prefix=/usr
-srcdir=.
-top_srcdir=.
-ac_top_srcdir=@ac_top_srcdir@
-exec_prefix=${prefix}
-bindir=${exec_prefix}/bin
-datadir=${datarootdir}
-datarootdir=${prefix}/share
-includedir=/usr/include/MAdLib
-libdir=${exec_prefix}/lib
-docdir=${datarootdir}/doc/${PACKAGE_TARNAME}
-mandir=${prefix}/share/man
-infodir=${prefix}/share/info
diff --git a/debian/tmp/usr/bin/checkMesh b/debian/tmp/usr/bin/checkMesh
deleted file mode 100755
index e16e5ca..0000000
Binary files a/debian/tmp/usr/bin/checkMesh and /dev/null differ
diff --git a/debian/tmp/usr/bin/meshInfo b/debian/tmp/usr/bin/meshInfo
deleted file mode 100755
index 93ffb82..0000000
Binary files a/debian/tmp/usr/bin/meshInfo and /dev/null differ
diff --git a/debian/tmp/usr/bin/moveIt b/debian/tmp/usr/bin/moveIt
deleted file mode 100755
index 4d8dc81..0000000
Binary files a/debian/tmp/usr/bin/moveIt and /dev/null differ
diff --git a/debian/tmp/usr/bin/optimize b/debian/tmp/usr/bin/optimize
deleted file mode 100755
index 21cf717..0000000
Binary files a/debian/tmp/usr/bin/optimize and /dev/null differ
diff --git a/debian/tmp/usr/include/MAdLib/ANN.h b/debian/tmp/usr/include/MAdLib/ANN.h
deleted file mode 100644
index ca8146a..0000000
--- a/debian/tmp/usr/include/MAdLib/ANN.h
+++ /dev/null
@@ -1,829 +0,0 @@
-//----------------------------------------------------------------------
-// File: ANN.h
-// Programmer: Sunil Arya and David Mount
-// Last modified: 05/03/05 (Release 1.1)
-// Description: Basic include file for approximate nearest
-// neighbor searching.
-//----------------------------------------------------------------------
-// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and
-// David Mount. All Rights Reserved.
-//
-// This software and related documentation is part of the
-// Approximate Nearest Neighbor Library (ANN).
-//
-// Permission to use, copy, and distribute this software and its
-// documentation is hereby granted free of charge, provided that
-// (1) it is not a component of a commercial product, and
-// (2) this notice appears in all copies of the software and
-// related documentation.
-//
-// The University of Maryland (U.M.) and the authors make no representations
-// about the suitability or fitness of this software for any purpose. It is
-// provided "as is" without express or implied warranty.
-//----------------------------------------------------------------------
-// History:
-// Revision 0.1 03/04/98
-// Initial release
-// Revision 1.0 04/01/05
-// Added copyright and revision information
-// Added ANNcoordPrec for coordinate precision.
-// Added methods theDim, nPoints, maxPoints, thePoints to ANNpointSet.
-// Cleaned up C++ structure for modern compilers
-// Revision 1.1 05/03/05
-// Added fixed-radius k-NN searching
-//----------------------------------------------------------------------
-
-//----------------------------------------------------------------------
-// ANN - approximate nearest neighbor searching
-// ANN is a library for approximate nearest neighbor searching,
-// based on the use of standard and priority search in kd-trees
-// and balanced box-decomposition (bbd) trees. Here are some
-// references to the main algorithmic techniques used here:
-//
-// kd-trees:
-// Friedman, Bentley, and Finkel, ``An algorithm for finding
-// best matches in logarithmic expected time,'' ACM
-// Transactions on Mathematical Software, 3(3):209-226, 1977.
-//
-// Priority search in kd-trees:
-// Arya and Mount, ``Algorithms for fast vector quantization,''
-// Proc. of DCC '93: Data Compression Conference, eds. J. A.
-// Storer and M. Cohn, IEEE Press, 1993, 381-390.
-//
-// Approximate nearest neighbor search and bbd-trees:
-// Arya, Mount, Netanyahu, Silverman, and Wu, ``An optimal
-// algorithm for approximate nearest neighbor searching,''
-// 5th Ann. ACM-SIAM Symposium on Discrete Algorithms,
-// 1994, 573-582.
-//----------------------------------------------------------------------
-
-#ifndef ANN_H
-#define ANN_H
-
-#ifdef WIN33
- //----------------------------------------------------------------------
- // For Microsoft Visual C++, externally accessible symbols must be
- // explicitly indicated with DLL_API, which is somewhat like "extern."
- //
- // The following ifdef block is the standard way of creating macros
- // which make exporting from a DLL simpler. All files within this DLL
- // are compiled with the DLL_EXPORTS preprocessor symbol defined on the
- // command line. In contrast, projects that use (or import) the DLL
- // objects do not define the DLL_EXPORTS symbol. This way any other
- // project whose source files include this file see DLL_API functions as
- // being imported from a DLL, wheras this DLL sees symbols defined with
- // this macro as being exported.
- //----------------------------------------------------------------------
- #ifdef DLL_EXPORTS
- #define DLL_API __declspec(dllexport)
- #else
- #define DLL_API __declspec(dllimport)
- #endif
- //----------------------------------------------------------------------
- // DLL_API is ignored for all other systems
- //----------------------------------------------------------------------
-#else
- #define DLL_API
-#endif
-
-//----------------------------------------------------------------------
-// basic includes
-//----------------------------------------------------------------------
-
-#include <cmath> // math includes
-#include <iostream> // I/O streams
-
-//----------------------------------------------------------------------
-// Limits
-// There are a number of places where we use the maximum double value as
-// default initializers (and others may be used, depending on the
-// data/distance representation). These can usually be found in limits.h
-// (as LONG_MAX, INT_MAX) or in float.h (as DBL_MAX, FLT_MAX).
-//
-// Not all systems have these files. If you are using such a system,
-// you should set the preprocessor symbol ANN_NO_LIMITS_H when
-// compiling, and modify the statements below to generate the
-// appropriate value. For practical purposes, this does not need to be
-// the maximum double value. It is sufficient that it be at least as
-// large than the maximum squared distance between between any two
-// points.
-//----------------------------------------------------------------------
-#ifdef ANN_NO_LIMITS_H // limits.h unavailable
- #include <cvalues> // replacement for limits.h
- const double ANN_DBL_MAX = MAXDOUBLE; // insert maximum double
-#else
- #include <climits>
- #include <cfloat>
- const double ANN_DBL_MAX = DBL_MAX;
-#endif
-
-#define ANNversion "1.0" // ANN version and information
-#define ANNversionCmt ""
-#define ANNcopyright "David M. Mount and Sunil Arya"
-#define ANNlatestRev "Mar 1, 2005"
-
-//----------------------------------------------------------------------
-// ANNbool
-// This is a simple boolean type. Although ANSI C++ is supposed
-// to support the type bool, some compilers do not have it.
-//----------------------------------------------------------------------
-
-enum ANNbool {ANNfalse = 0, ANNtrue = 1}; // ANN boolean type (non ANSI C++)
-
-//----------------------------------------------------------------------
-// ANNcoord, ANNdist
-// ANNcoord and ANNdist are the types used for representing
-// point coordinates and distances. They can be modified by the
-// user, with some care. It is assumed that they are both numeric
-// types, and that ANNdist is generally of an equal or higher type
-// from ANNcoord. A variable of type ANNdist should be large
-// enough to store the sum of squared components of a variable
-// of type ANNcoord for the number of dimensions needed in the
-// application. For example, the following combinations are
-// legal:
-//
-// ANNcoord ANNdist
-// --------- -------------------------------
-// short short, int, long, float, double
-// int int, long, float, double
-// long long, float, double
-// float float, double
-// double double
-//
-// It is the user's responsibility to make sure that overflow does
-// not occur in distance calculation.
-//----------------------------------------------------------------------
-
-typedef double ANNcoord; // coordinate data type
-typedef double ANNdist; // distance data type
-
-//----------------------------------------------------------------------
-// ANNidx
-// ANNidx is a point index. When the data structure is built, the
-// points are given as an array. Nearest neighbor results are
-// returned as an integer index into this array. To make it
-// clearer when this is happening, we define the integer type
-// ANNidx. Indexing starts from 0.
-//
-// For fixed-radius near neighbor searching, it is possible that
-// there are not k nearest neighbors within the search radius. To
-// indicate this, the algorithm returns ANN_NULL_IDX as its result.
-// It should be distinguishable from any valid array index.
-//----------------------------------------------------------------------
-
-typedef int ANNidx; // point index
-const ANNidx ANN_NULL_IDX = -1; // a NULL point index
-
-//----------------------------------------------------------------------
-// Infinite distance:
-// The code assumes that there is an "infinite distance" which it
-// uses to initialize distances before performing nearest neighbor
-// searches. It should be as larger or larger than any legitimate
-// nearest neighbor distance.
-//
-// On most systems, these should be found in the standard include
-// file <limits.h> or possibly <float.h>. If you do not have these
-// file, some suggested values are listed below, assuming 64-bit
-// long, 32-bit int and 16-bit short.
-//
-// ANNdist ANN_DIST_INF Values (see <limits.h> or <float.h>)
-// ------- ------------ ------------------------------------
-// double DBL_MAX 1.79769313486231570e+308
-// float FLT_MAX 3.40282346638528860e+38
-// long LONG_MAX 0x7fffffffffffffff
-// int INT_MAX 0x7fffffff
-// short SHRT_MAX 0x7fff
-//----------------------------------------------------------------------
-
-const ANNdist ANN_DIST_INF = ANN_DBL_MAX;
-
-//----------------------------------------------------------------------
-// Significant digits for tree dumps:
-// When floating point coordinates are used, the routine that dumps
-// a tree needs to know roughly how many significant digits there
-// are in a ANNcoord, so it can output points to full precision.
-// This is defined to be ANNcoordPrec. On most systems these
-// values can be found in the standard include files <limits.h> or
-// <float.h>. For integer types, the value is essentially ignored.
-//
-// ANNcoord ANNcoordPrec Values (see <limits.h> or <float.h>)
-// -------- ------------ ------------------------------------
-// double DBL_DIG 15
-// float FLT_DIG 6
-// long doesn't matter 19
-// int doesn't matter 10
-// short doesn't matter 5
-//----------------------------------------------------------------------
-
-#ifdef DBL_DIG // number of sig. bits in ANNcoord
- const int ANNcoordPrec = DBL_DIG;
-#else
- const int ANNcoordPrec = 15; // default precision
-#endif
-
-//----------------------------------------------------------------------
-// Self match?
-// In some applications, the nearest neighbor of a point is not
-// allowed to be the point itself. This occurs, for example, when
-// computing all nearest neighbors in a set. By setting the
-// parameter ANN_ALLOW_SELF_MATCH to ANNfalse, the nearest neighbor
-// is the closest point whose distance from the query point is
-// strictly positive.
-//----------------------------------------------------------------------
-
-const ANNbool ANN_ALLOW_SELF_MATCH = ANNtrue;
-
-//----------------------------------------------------------------------
-// Norms and metrics:
-// ANN supports any Minkowski norm for defining distance. In
-// particular, for any p >= 1, the L_p Minkowski norm defines the
-// length of a d-vector (v0, v1, ..., v(d-1)) to be
-//
-// (|v0|^p + |v1|^p + ... + |v(d-1)|^p)^(1/p),
-//
-// (where ^ denotes exponentiation, and |.| denotes absolute
-// value). The distance between two points is defined to be the
-// norm of the vector joining them. Some common distance metrics
-// include
-//
-// Euclidean metric p = 2
-// Manhattan metric p = 1
-// Max metric p = infinity
-//
-// In the case of the max metric, the norm is computed by taking
-// the maxima of the absolute values of the components. ANN is
-// highly "coordinate-based" and does not support general distances
-// functions (e.g. those obeying just the triangle inequality). It
-// also does not support distance functions based on
-// inner-products.
-//
-// For the purpose of computing nearest neighbors, it is not
-// necessary to compute the final power (1/p). Thus the only
-// component that is used by the program is |v(i)|^p.
-//
-// ANN parameterizes the distance computation through the following
-// macros. (Macros are used rather than procedures for
-// efficiency.) Recall that the distance between two points is
-// given by the length of the vector joining them, and the length
-// or norm of a vector v is given by formula:
-//
-// |v| = ROOT(POW(v0) # POW(v1) # ... # POW(v(d-1)))
-//
-// where ROOT, POW are unary functions and # is an associative and
-// commutative binary operator mapping the following types:
-//
-// ** POW: ANNcoord --> ANNdist
-// ** #: ANNdist x ANNdist --> ANNdist
-// ** ROOT: ANNdist (>0) --> double
-//
-// For early termination in distance calculation (partial distance
-// calculation) we assume that POW and # together are monotonically
-// increasing on sequences of arguments, meaning that for all
-// v0..vk and y:
-//
-// POW(v0) #...# POW(vk) <= (POW(v0) #...# POW(vk)) # POW(y).
-//
-// Incremental Distance Calculation:
-// The program uses an optimized method of computing distances for
-// kd-trees and bd-trees, called incremental distance calculation.
-// It is used when distances are to be updated when only a single
-// coordinate of a point has been changed. In order to use this,
-// we assume that there is an incremental update function DIFF(x,y)
-// for #, such that if:
-//
-// s = x0 # ... # xi # ... # xk
-//
-// then if s' is equal to s but with xi replaced by y, that is,
-//
-// s' = x0 # ... # y # ... # xk
-//
-// then the length of s' can be computed by:
-//
-// |s'| = |s| # DIFF(xi,y).
-//
-// Thus, if # is + then DIFF(xi,y) is (yi-x). For the L_infinity
-// norm we make use of the fact that in the program this function
-// is only invoked when y > xi, and hence DIFF(xi,y)=y.
-//
-// Finally, for approximate nearest neighbor queries we assume
-// that POW and ROOT are related such that
-//
-// v*ROOT(x) = ROOT(POW(v)*x)
-//
-// Here are the values for the various Minkowski norms:
-//
-// L_p: p even: p odd:
-// ------------------------- ------------------------
-// POW(v) = v^p POW(v) = |v|^p
-// ROOT(x) = x^(1/p) ROOT(x) = x^(1/p)
-// # = + # = +
-// DIFF(x,y) = y - x DIFF(x,y) = y - x
-//
-// L_inf:
-// POW(v) = |v|
-// ROOT(x) = x
-// # = max
-// DIFF(x,y) = y
-//
-// By default the Euclidean norm is assumed. To change the norm,
-// uncomment the appropriate set of macros below.
-//----------------------------------------------------------------------
-
-//----------------------------------------------------------------------
-// Use the following for the Euclidean norm
-//----------------------------------------------------------------------
-#define ANN_POW(v) ((v)*(v))
-#define ANN_ROOT(x) sqrt(x)
-#define ANN_SUM(x,y) ((x) + (y))
-#define ANN_DIFF(x,y) ((y) - (x))
-
-//----------------------------------------------------------------------
-// Use the following for the L_1 (Manhattan) norm
-//----------------------------------------------------------------------
-// #define ANN_POW(v) fabs(v)
-// #define ANN_ROOT(x) (x)
-// #define ANN_SUM(x,y) ((x) + (y))
-// #define ANN_DIFF(x,y) ((y) - (x))
-
-//----------------------------------------------------------------------
-// Use the following for a general L_p norm
-//----------------------------------------------------------------------
-// #define ANN_POW(v) pow(fabs(v),p)
-// #define ANN_ROOT(x) pow(fabs(x),1/p)
-// #define ANN_SUM(x,y) ((x) + (y))
-// #define ANN_DIFF(x,y) ((y) - (x))
-
-//----------------------------------------------------------------------
-// Use the following for the L_infinity (Max) norm
-//----------------------------------------------------------------------
-// #define ANN_POW(v) fabs(v)
-// #define ANN_ROOT(x) (x)
-// #define ANN_SUM(x,y) ((x) > (y) ? (x) : (y))
-// #define ANN_DIFF(x,y) (y)
-
-//----------------------------------------------------------------------
-// Array types
-// The following array types are of basic interest. A point is
-// just a dimensionless array of coordinates, a point array is a
-// dimensionless array of points. A distance array is a
-// dimensionless array of distances and an index array is a
-// dimensionless array of point indices. The latter two are used
-// when returning the results of k-nearest neighbor queries.
-//----------------------------------------------------------------------
-
-typedef ANNcoord* ANNpoint; // a point
-typedef ANNpoint* ANNpointArray; // an array of points
-typedef ANNdist* ANNdistArray; // an array of distances
-typedef ANNidx* ANNidxArray; // an array of point indices
-
-//----------------------------------------------------------------------
-// Basic point and array utilities:
-// The following procedures are useful supplements to ANN's nearest
-// neighbor capabilities.
-//
-// annDist():
-// Computes the (squared) distance between a pair of points.
-// Note that this routine is not used internally by ANN for
-// computing distance calculations. For reasons of efficiency
-// this is done using incremental distance calculation. Thus,
-// this routine cannot be modified as a method of changing the
-// metric.
-//
-// Because points (somewhat like strings in C) are stored as
-// pointers. Consequently, creating and destroying copies of
-// points may require storage allocation. These procedures do
-// this.
-//
-// annAllocPt() and annDeallocPt():
-// Allocate a deallocate storage for a single point, and
-// return a pointer to it. The argument to AllocPt() is
-// used to initialize all components.
-//
-// annAllocPts() and annDeallocPts():
-// Allocate and deallocate an array of points as well a
-// place to store their coordinates, and initializes the
-// points to point to their respective coordinates. It
-// allocates point storage in a contiguous block large
-// enough to store all the points. It performs no
-// initialization.
-//
-// annCopyPt():
-// Creates a copy of a given point, allocating space for
-// the new point. It returns a pointer to the newly
-// allocated copy.
-//----------------------------------------------------------------------
-
-DLL_API ANNdist annDist(
- int dim, // dimension of space
- ANNpoint p, // points
- ANNpoint q);
-
-DLL_API ANNpoint annAllocPt(
- int dim, // dimension
- ANNcoord c = 0); // coordinate value (all equal)
-
-DLL_API ANNpointArray annAllocPts(
- int n, // number of points
- int dim); // dimension
-
-DLL_API void annDeallocPt(
- ANNpoint &p); // deallocate 1 point
-
-DLL_API void annDeallocPts(
- ANNpointArray &pa); // point array
-
-DLL_API ANNpoint annCopyPt(
- int dim, // dimension
- ANNpoint source); // point to copy
-
-//----------------------------------------------------------------------
-//Overall structure: ANN supports a number of different data structures
-//for approximate and exact nearest neighbor searching. These are:
-//
-// ANNbruteForce A simple brute-force search structure.
-// ANNkd_tree A kd-tree tree search structure. ANNbd_tree
-// A bd-tree tree search structure (a kd-tree with shrink
-// capabilities).
-//
-// At a minimum, each of these data structures support k-nearest
-// neighbor queries. The nearest neighbor query, annkSearch,
-// returns an integer identifier and the distance to the nearest
-// neighbor(s) and annRangeSearch returns the nearest points that
-// lie within a given query ball.
-//
-// Each structure is built by invoking the appropriate constructor
-// and passing it (at a minimum) the array of points, the total
-// number of points and the dimension of the space. Each structure
-// is also assumed to support a destructor and member functions
-// that return basic information about the point set.
-//
-// Note that the array of points is not copied by the data
-// structure (for reasons of space efficiency), and it is assumed
-// to be constant throughout the lifetime of the search structure.
-//
-// The search algorithm, annkSearch, is given the query point (q),
-// and the desired number of nearest neighbors to report (k), and
-// the error bound (eps) (whose default value is 0, implying exact
-// nearest neighbors). It returns two arrays which are assumed to
-// contain at least k elements: one (nn_idx) contains the indices
-// (within the point array) of the nearest neighbors and the other
-// (dd) contains the squared distances to these nearest neighbors.
-//
-// The search algorithm, annkFRSearch, is a fixed-radius kNN
-// search. In addition to a query point, it is given a (squared)
-// radius bound. (This is done for consistency, because the search
-// returns distances as squared quantities.) It does two things.
-// First, it computes the k nearest neighbors within the radius
-// bound, and second, it returns the total number of points lying
-// within the radius bound. It is permitted to set k = 0, in which
-// case it effectively answers a range counting query. If the
-// error bound epsilon is positive, then the search is approximate
-// in the sense that it is free to ignore any point that lies
-// outside a ball of radius r/(1+epsilon), where r is the given
-// (unsquared) radius bound.
-//
-// The generic object from which all the search structures are
-// dervied is given below. It is a virtual object, and is useless
-// by itself.
-//----------------------------------------------------------------------
-
-class DLL_API ANNpointSet {
-public:
- virtual ~ANNpointSet() {} // virtual distructor
-
- virtual void annkSearch( // approx k near neighbor search
- ANNpoint q, // query point
- int k, // number of near neighbors to return
- ANNidxArray nn_idx, // nearest neighbor array (modified)
- ANNdistArray dd, // dist to near neighbors (modified)
- double eps=0.0 // error bound
- ) = 0; // pure virtual (defined elsewhere)
-
- virtual int annkFRSearch( // approx fixed-radius kNN search
- ANNpoint q, // query point
- ANNdist sqRad, // squared radius
- int k = 0, // number of near neighbors to return
- ANNidxArray nn_idx = NULL, // nearest neighbor array (modified)
- ANNdistArray dd = NULL, // dist to near neighbors (modified)
- double eps=0.0 // error bound
- ) = 0; // pure virtual (defined elsewhere)
-
- virtual int theDim() = 0; // return dimension of space
- virtual int nPoints() = 0; // return number of points
- // return pointer to points
- virtual ANNpointArray thePoints() = 0;
-};
-
-//----------------------------------------------------------------------
-// Brute-force nearest neighbor search:
-// The brute-force search structure is very simple but inefficient.
-// It has been provided primarily for the sake of comparison with
-// and validation of the more complex search structures.
-//
-// Query processing is the same as described above, but the value
-// of epsilon is ignored, since all distance calculations are
-// performed exactly.
-//
-// WARNING: This data structure is very slow, and should not be
-// used unless the number of points is very small.
-//
-// Internal information:
-// ---------------------
-// This data structure bascially consists of the array of points
-// (each a pointer to an array of coordinates). The search is
-// performed by a simple linear scan of all the points.
-//----------------------------------------------------------------------
-
-class DLL_API ANNbruteForce: public ANNpointSet {
- int dim; // dimension
- int n_pts; // number of points
- ANNpointArray pts; // point array
-public:
- ANNbruteForce( // constructor from point array
- ANNpointArray pa, // point array
- int n, // number of points
- int dd); // dimension
-
- ~ANNbruteForce(); // destructor
-
- void annkSearch( // approx k near neighbor search
- ANNpoint q, // query point
- int k, // number of near neighbors to return
- ANNidxArray nn_idx, // nearest neighbor array (modified)
- ANNdistArray dd, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- int annkFRSearch( // approx fixed-radius kNN search
- ANNpoint q, // query point
- ANNdist sqRad, // squared radius
- int k = 0, // number of near neighbors to return
- ANNidxArray nn_idx = NULL, // nearest neighbor array (modified)
- ANNdistArray dd = NULL, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- int theDim() // return dimension of space
- { return dim; }
-
- int nPoints() // return number of points
- { return n_pts; }
-
- ANNpointArray thePoints() // return pointer to points
- { return pts; }
-};
-
-//----------------------------------------------------------------------
-// kd- and bd-tree splitting and shrinking rules
-// kd-trees supports a collection of different splitting rules.
-// In addition to the standard kd-tree splitting rule proposed
-// by Friedman, Bentley, and Finkel, we have introduced a
-// number of other splitting rules, which seem to perform
-// as well or better (for the distributions we have tested).
-//
-// The splitting methods given below allow the user to tailor
-// the data structure to the particular data set. They are
-// are described in greater details in the kd_split.cc source
-// file. The method ANN_KD_SUGGEST is the method chosen (rather
-// subjectively) by the implementors as the one giving the
-// fastest performance, and is the default splitting method.
-//
-// As with splitting rules, there are a number of different
-// shrinking rules. The shrinking rule ANN_BD_NONE does no
-// shrinking (and hence produces a kd-tree tree). The rule
-// ANN_BD_SUGGEST uses the implementors favorite rule.
-//----------------------------------------------------------------------
-
-enum ANNsplitRule {
- ANN_KD_STD = 0, // the optimized kd-splitting rule
- ANN_KD_MIDPT = 1, // midpoint split
- ANN_KD_FAIR = 2, // fair split
- ANN_KD_SL_MIDPT = 3, // sliding midpoint splitting method
- ANN_KD_SL_FAIR = 4, // sliding fair split method
- ANN_KD_SUGGEST = 5}; // the authors' suggestion for best
-const int ANN_N_SPLIT_RULES = 6; // number of split rules
-
-enum ANNshrinkRule {
- ANN_BD_NONE = 0, // no shrinking at all (just kd-tree)
- ANN_BD_SIMPLE = 1, // simple splitting
- ANN_BD_CENTROID = 2, // centroid splitting
- ANN_BD_SUGGEST = 3}; // the authors' suggested choice
-const int ANN_N_SHRINK_RULES = 4; // number of shrink rules
-
-//----------------------------------------------------------------------
-// kd-tree:
-// The main search data structure supported by ANN is a kd-tree.
-// The main constructor is given a set of points and a choice of
-// splitting method to use in building the tree.
-//
-// Construction:
-// -------------
-// The constructor is given the point array, number of points,
-// dimension, bucket size (default = 1), and the splitting rule
-// (default = ANN_KD_SUGGEST). The point array is not copied, and
-// is assumed to be kept constant throughout the lifetime of the
-// search structure. There is also a "load" constructor that
-// builds a tree from a file description that was created by the
-// Dump operation.
-//
-// Search:
-// -------
-// There are two search methods:
-//
-// Standard search (annkSearch()):
-// Searches nodes in tree-traversal order, always visiting
-// the closer child first.
-// Priority search (annkPriSearch()):
-// Searches nodes in order of increasing distance of the
-// associated cell from the query point. For many
-// distributions the standard search seems to work just
-// fine, but priority search is safer for worst-case
-// performance.
-//
-// Printing:
-// ---------
-// There are two methods provided for printing the tree. Print()
-// is used to produce a "human-readable" display of the tree, with
-// indenation, which is handy for debugging. Dump() produces a
-// format that is suitable reading by another program. There is a
-// "load" constructor, which constructs a tree which is assumed to
-// have been saved by the Dump() procedure.
-//
-// Performance and Structure Statistics:
-// -------------------------------------
-// The procedure getStats() collects statistics information on the
-// tree (its size, height, etc.) See ANNperf.h for information on
-// the stats structure it returns.
-//
-// Internal information:
-// ---------------------
-// The data structure consists of three major chunks of storage.
-// The first (implicit) storage are the points themselves (pts),
-// which have been provided by the users as an argument to the
-// constructor, or are allocated dynamically if the tree is built
-// using the load constructor). These should not be changed during
-// the lifetime of the search structure. It is the user's
-// responsibility to delete these after the tree is destroyed.
-//
-// The second is the tree itself (which is dynamically allocated in
-// the constructor) and is given as a pointer to its root node
-// (root). These nodes are automatically deallocated when the tree
-// is deleted. See the file src/kd_tree.h for further information
-// on the structure of the tree nodes.
-//
-// Each leaf of the tree does not contain a pointer directly to a
-// point, but rather contains a pointer to a "bucket", which is an
-// array consisting of point indices. The third major chunk of
-// storage is an array (pidx), which is a large array in which all
-// these bucket subarrays reside. (The reason for storing them
-// separately is the buckets are typically small, but of varying
-// sizes. This was done to avoid fragmentation.) This array is
-// also deallocated when the tree is deleted.
-//
-// In addition to this, the tree consists of a number of other
-// pieces of information which are used in searching and for
-// subsequent tree operations. These consist of the following:
-//
-// dim Dimension of space
-// n_pts Number of points currently in the tree
-// n_max Maximum number of points that are allowed
-// in the tree
-// bkt_size Maximum bucket size (no. of points per leaf)
-// bnd_box_lo Bounding box low point
-// bnd_box_hi Bounding box high point
-// splitRule Splitting method used
-//
-//----------------------------------------------------------------------
-
-//----------------------------------------------------------------------
-// Some types and objects used by kd-tree functions
-// See src/kd_tree.h and src/kd_tree.cpp for definitions
-//----------------------------------------------------------------------
-class ANNkdStats; // stats on kd-tree
-class ANNkd_node; // generic node in a kd-tree
-typedef ANNkd_node* ANNkd_ptr; // pointer to a kd-tree node
-
-class DLL_API ANNkd_tree: public ANNpointSet {
-protected:
- int dim; // dimension of space
- int n_pts; // number of points in tree
- int bkt_size; // bucket size
- ANNpointArray pts; // the points
- ANNidxArray pidx; // point indices (to pts array)
- ANNkd_ptr root; // root of kd-tree
- ANNpoint bnd_box_lo; // bounding box low point
- ANNpoint bnd_box_hi; // bounding box high point
-
- void SkeletonTree( // construct skeleton tree
- int n, // number of points
- int dd, // dimension
- int bs, // bucket size
- ANNpointArray pa = NULL, // point array (optional)
- ANNidxArray pi = NULL); // point indices (optional)
-
-public:
- ANNkd_tree( // build skeleton tree
- int n = 0, // number of points
- int dd = 0, // dimension
- int bs = 1); // bucket size
-
- ANNkd_tree( // build from point array
- ANNpointArray pa, // point array
- int n, // number of points
- int dd, // dimension
- int bs = 1, // bucket size
- ANNsplitRule split = ANN_KD_SUGGEST); // splitting method
-
- ANNkd_tree( // build from dump file
- std::istream& in); // input stream for dump file
-
- ~ANNkd_tree(); // tree destructor
-
- void annkSearch( // approx k near neighbor search
- ANNpoint q, // query point
- int k, // number of near neighbors to return
- ANNidxArray nn_idx, // nearest neighbor array (modified)
- ANNdistArray dd, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- void annkPriSearch( // priority k near neighbor search
- ANNpoint q, // query point
- int k, // number of near neighbors to return
- ANNidxArray nn_idx, // nearest neighbor array (modified)
- ANNdistArray dd, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- int annkFRSearch( // approx fixed-radius kNN search
- ANNpoint q, // the query point
- ANNdist sqRad, // squared radius of query ball
- int k, // number of neighbors to return
- ANNidxArray nn_idx = NULL, // nearest neighbor array (modified)
- ANNdistArray dd = NULL, // dist to near neighbors (modified)
- double eps=0.0); // error bound
-
- int theDim() // return dimension of space
- { return dim; }
-
- int nPoints() // return number of points
- { return n_pts; }
-
- ANNpointArray thePoints() // return pointer to points
- { return pts; }
-
- virtual void Print( // print the tree (for debugging)
- ANNbool with_pts, // print points as well?
- std::ostream& out); // output stream
-
- virtual void Dump( // dump entire tree
- ANNbool with_pts, // print points as well?
- std::ostream& out); // output stream
-
- virtual void getStats( // compute tree statistics
- ANNkdStats& st); // the statistics (modified)
-};
-
-//----------------------------------------------------------------------
-// Box decomposition tree (bd-tree)
-// The bd-tree is inherited from a kd-tree. The main difference
-// in the bd-tree and the kd-tree is a new type of internal node
-// called a shrinking node (in the kd-tree there is only one type
-// of internal node, a splitting node). The shrinking node
-// makes it possible to generate balanced trees in which the
-// cells have bounded aspect ratio, by allowing the decomposition
-// to zoom in on regions of dense point concentration. Although
-// this is a nice idea in theory, few point distributions are so
-// densely clustered that this is really needed.
-//----------------------------------------------------------------------
-
-class DLL_API ANNbd_tree: public ANNkd_tree {
-public:
- ANNbd_tree( // build skeleton tree
- int n, // number of points
- int dd, // dimension
- int bs = 1) // bucket size
- : ANNkd_tree(n, dd, bs) {} // build base kd-tree
-
- ANNbd_tree( // build from point array
- ANNpointArray pa, // point array
- int n, // number of points
- int dd, // dimension
- int bs = 1, // bucket size
- ANNsplitRule split = ANN_KD_SUGGEST, // splitting rule
- ANNshrinkRule shrink = ANN_BD_SUGGEST); // shrinking rule
-
- ANNbd_tree( // build from dump file
- std::istream& in); // input stream for dump file
-};
-
-//----------------------------------------------------------------------
-// Other functions
-// annMaxPtsVisit Sets a limit on the maximum number of points
-// to visit in the search.
-// annClose Can be called when all use of ANN is finished.
-// It clears up a minor memory leak.
-//----------------------------------------------------------------------
-
-DLL_API void annMaxPtsVisit( // max. pts to visit in search
- int maxPts); // the limit
-
-DLL_API void annClose(); // called to end use of ANN
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/ANNperf.h b/debian/tmp/usr/include/MAdLib/ANNperf.h
deleted file mode 100644
index b18c816..0000000
--- a/debian/tmp/usr/include/MAdLib/ANNperf.h
+++ /dev/null
@@ -1,226 +0,0 @@
-//----------------------------------------------------------------------
-// File: ANNperf.h
-// Programmer: Sunil Arya and David Mount
-// Last modified: 03/04/98 (Release 0.1)
-// Description: Include file for ANN performance stats
-//
-// Some of the code for statistics gathering has been adapted
-// from the SmplStat.h package in the g++ library.
-//----------------------------------------------------------------------
-// Copyright (c) 1997-1998 University of Maryland and Sunil Arya and David
-// Mount. All Rights Reserved.
-//
-// This software and related documentation is part of the
-// Approximate Nearest Neighbor Library (ANN).
-//
-// Permission to use, copy, and distribute this software and its
-// documentation is hereby granted free of charge, provided that
-// (1) it is not a component of a commercial product, and
-// (2) this notice appears in all copies of the software and
-// related documentation.
-//
-// The University of Maryland (U.M.) and the authors make no representations
-// about the suitability or fitness of this software for any purpose. It is
-// provided "as is" without express or implied warranty.
-//----------------------------------------------------------------------
-// History:
-// Revision 0.1 03/04/98
-// Initial release
-// Revision 1.0 04/01/05
-// Added ANN_ prefix to avoid name conflicts.
-//----------------------------------------------------------------------
-
-#ifndef ANNperf_H
-#define ANNperf_H
-
-//----------------------------------------------------------------------
-// basic includes
-//----------------------------------------------------------------------
-
-#include <ANN/ANN.h> // basic ANN includes
-
-//----------------------------------------------------------------------
-// kd-tree stats object
-// This object is used for collecting information about a kd-tree
-// or bd-tree.
-//----------------------------------------------------------------------
-
-class ANNkdStats { // stats on kd-tree
-public:
- int dim; // dimension of space
- int n_pts; // no. of points
- int bkt_size; // bucket size
- int n_lf; // no. of leaves (including trivial)
- int n_tl; // no. of trivial leaves (no points)
- int n_spl; // no. of splitting nodes
- int n_shr; // no. of shrinking nodes (for bd-trees)
- int depth; // depth of tree
- float sum_ar; // sum of leaf aspect ratios
- float avg_ar; // average leaf aspect ratio
- //
- // reset stats
- void reset(int d=0, int n=0, int bs=0)
- {
- dim = d; n_pts = n; bkt_size = bs;
- n_lf = n_tl = n_spl = n_shr = depth = 0;
- sum_ar = avg_ar = 0.0;
- }
-
- ANNkdStats() // basic constructor
- { reset(); }
-
- void merge(const ANNkdStats &st); // merge stats from child
-};
-
-//----------------------------------------------------------------------
-// ANNsampStat
-// A sample stat collects numeric (double) samples and returns some
-// simple statistics. Its main functions are:
-//
-// reset() Reset to no samples.
-// += x Include sample x.
-// samples() Return number of samples.
-// mean() Return mean of samples.
-// stdDev() Return standard deviation
-// min() Return minimum of samples.
-// max() Return maximum of samples.
-//----------------------------------------------------------------------
-class DLL_API ANNsampStat {
- int n; // number of samples
- double sum; // sum
- double sum2; // sum of squares
- double minVal, maxVal; // min and max
-public :
- void reset() // reset everything
- {
- n = 0;
- sum = sum2 = 0;
- minVal = ANN_DBL_MAX;
- maxVal = -ANN_DBL_MAX;
- }
-
- ANNsampStat() { reset(); } // constructor
-
- void operator+=(double x) // add sample
- {
- n++; sum += x; sum2 += x*x;
- if (x < minVal) minVal = x;
- if (x > maxVal) maxVal = x;
- }
-
- int samples() { return n; } // number of samples
-
- double mean() { return sum/n; } // mean
-
- // standard deviation
- double stdDev() { return sqrt((sum2 - (sum*sum)/n)/(n-1));}
-
- double min() { return minVal; } // minimum
- double max() { return maxVal; } // maximum
-};
-
-//----------------------------------------------------------------------
-// Operation count updates
-//----------------------------------------------------------------------
-
-#ifdef ANN_PERF
- #define ANN_FLOP(n) {ann_Nfloat_ops += (n);}
- #define ANN_LEAF(n) {ann_Nvisit_lfs += (n);}
- #define ANN_SPL(n) {ann_Nvisit_spl += (n);}
- #define ANN_SHR(n) {ann_Nvisit_shr += (n);}
- #define ANN_PTS(n) {ann_Nvisit_pts += (n);}
- #define ANN_COORD(n) {ann_Ncoord_hts += (n);}
-#else
- #define ANN_FLOP(n)
- #define ANN_LEAF(n)
- #define ANN_SPL(n)
- #define ANN_SHR(n)
- #define ANN_PTS(n)
- #define ANN_COORD(n)
-#endif
-
-//----------------------------------------------------------------------
-// Performance statistics
-// The following data and routines are used for computing performance
-// statistics for nearest neighbor searching. Because these routines
-// can slow the code down, they can be activated and deactiviated by
-// defining the ANN_PERF variable, by compiling with the option:
-// -DANN_PERF
-//----------------------------------------------------------------------
-
-//----------------------------------------------------------------------
-// Global counters for performance measurement
-//
-// visit_lfs The number of leaf nodes visited in the
-// tree.
-//
-// visit_spl The number of splitting nodes visited in the
-// tree.
-//
-// visit_shr The number of shrinking nodes visited in the
-// tree.
-//
-// visit_pts The number of points visited in all the
-// leaf nodes visited. Equivalently, this
-// is the number of points for which distance
-// calculations are performed.
-//
-// coord_hts The number of times a coordinate of a
-// data point is accessed. This is generally
-// less than visit_pts*d if partial distance
-// calculation is used. This count is low
-// in the sense that if a coordinate is hit
-// many times in the same routine we may
-// count it only once.
-//
-// float_ops The number of floating point operations.
-// This includes all operations in the heap
-// as well as distance calculations to boxes.
-//
-// average_err The average error of each query (the
-// error of the reported point to the true
-// nearest neighbor). For k nearest neighbors
-// the error is computed k times.
-//
-// rank_err The rank error of each query (the difference
-// in the rank of the reported point and its
-// true rank).
-//
-// data_pts The number of data points. This is not
-// a counter, but used in stats computation.
-//----------------------------------------------------------------------
-
-extern int ann_Ndata_pts; // number of data points
-extern int ann_Nvisit_lfs; // number of leaf nodes visited
-extern int ann_Nvisit_spl; // number of splitting nodes visited
-extern int ann_Nvisit_shr; // number of shrinking nodes visited
-extern int ann_Nvisit_pts; // visited points for one query
-extern int ann_Ncoord_hts; // coordinate hits for one query
-extern int ann_Nfloat_ops; // floating ops for one query
-extern ANNsampStat ann_visit_lfs; // stats on leaf nodes visits
-extern ANNsampStat ann_visit_spl; // stats on splitting nodes visits
-extern ANNsampStat ann_visit_shr; // stats on shrinking nodes visits
-extern ANNsampStat ann_visit_nds; // stats on total nodes visits
-extern ANNsampStat ann_visit_pts; // stats on points visited
-extern ANNsampStat ann_coord_hts; // stats on coordinate hits
-extern ANNsampStat ann_float_ops; // stats on floating ops
-//----------------------------------------------------------------------
-// The following need to be part of the public interface, because
-// they are accessed outside the DLL in ann_test.cpp.
-//----------------------------------------------------------------------
-DLL_API extern ANNsampStat ann_average_err; // average error
-DLL_API extern ANNsampStat ann_rank_err; // rank error
-
-//----------------------------------------------------------------------
-// Declaration of externally accessible routines for statistics
-//----------------------------------------------------------------------
-
-DLL_API void annResetStats(int data_size); // reset stats for a set of queries
-
-DLL_API void annResetCounts(); // reset counts for one queries
-
-DLL_API void annUpdateStats(); // update stats with current counts
-
-DLL_API void annPrintStats(ANNbool validate); // print statistics for a run
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/ANNx.h b/debian/tmp/usr/include/MAdLib/ANNx.h
deleted file mode 100644
index 38b07b7..0000000
--- a/debian/tmp/usr/include/MAdLib/ANNx.h
+++ /dev/null
@@ -1,170 +0,0 @@
-//----------------------------------------------------------------------
-// File: ANNx.h
-// Programmer: Sunil Arya and David Mount
-// Last modified: 03/04/98 (Release 0.1)
-// Description: Internal include file for ANN
-//
-// These declarations are of use in manipulating some of
-// the internal data objects appearing in ANN, but are not
-// needed for applications just using the nearest neighbor
-// search.
-//
-// Typical users of ANN should not need to access this file.
-//----------------------------------------------------------------------
-// Copyright (c) 1997-1998 University of Maryland and Sunil Arya and David
-// Mount. All Rights Reserved.
-//
-// This software and related documentation is part of the
-// Approximate Nearest Neighbor Library (ANN).
-//
-// Permission to use, copy, and distribute this software and its
-// documentation is hereby granted free of charge, provided that
-// (1) it is not a component of a commercial product, and
-// (2) this notice appears in all copies of the software and
-// related documentation.
-//
-// The University of Maryland (U.M.) and the authors make no representations
-// about the suitability or fitness of this software for any purpose. It is
-// provided "as is" without express or implied warranty.
-//----------------------------------------------------------------------
-// History:
-// Revision 0.1 03/04/98
-// Initial release
-// Revision 1.0 04/01/05
-// Changed LO, HI, IN, OUT to ANN_LO, ANN_HI, etc.
-//----------------------------------------------------------------------
-
-#ifndef ANNx_H
-#define ANNx_H
-
-#include <iomanip> // I/O manipulators
-#include <ANN/ANN.h> // ANN includes
-
-//----------------------------------------------------------------------
-// Global constants and types
-//----------------------------------------------------------------------
-enum {ANN_LO=0, ANN_HI=1}; // splitting indices
-enum {ANN_IN=0, ANN_OUT=1}; // shrinking indices
- // what to do in case of error
-enum ANNerr {ANNwarn = 0, ANNabort = 1};
-
-//----------------------------------------------------------------------
-// Maximum number of points to visit
-// We have an option for terminating the search early if the
-// number of points visited exceeds some threshold. If the
-// threshold is 0 (its default) this means there is no limit
-// and the algorithm applies its normal termination condition.
-//----------------------------------------------------------------------
-
-extern int ANNmaxPtsVisited; // maximum number of pts visited
-extern int ANNptsVisited; // number of pts visited in search
-
-//----------------------------------------------------------------------
-// Global function declarations
-//----------------------------------------------------------------------
-
-void annError( // ANN error routine
- char *msg, // error message
- ANNerr level); // level of error
-
-void annPrintPt( // print a point
- ANNpoint pt, // the point
- int dim, // the dimension
- std::ostream &out); // output stream
-
-//----------------------------------------------------------------------
-// Orthogonal (axis aligned) rectangle
-// Orthogonal rectangles are represented by two points, one
-// for the lower left corner (min coordinates) and the other
-// for the upper right corner (max coordinates).
-//
-// The constructor initializes from either a pair of coordinates,
-// pair of points, or another rectangle. Note that all constructors
-// allocate new point storage. The destructor deallocates this
-// storage.
-//
-// BEWARE: Orthogonal rectangles should be passed ONLY BY REFERENCE.
-// (C++'s default copy constructor will not allocate new point
-// storage, then on return the destructor free's storage, and then
-// you get into big trouble in the calling procedure.)
-//----------------------------------------------------------------------
-
-class ANNorthRect {
-public:
- ANNpoint lo; // rectangle lower bounds
- ANNpoint hi; // rectangle upper bounds
-//
- ANNorthRect( // basic constructor
- int dd, // dimension of space
- ANNcoord l=0, // default is empty
- ANNcoord h=0)
- { lo = annAllocPt(dd, l); hi = annAllocPt(dd, h); }
-
- ANNorthRect( // (almost a) copy constructor
- int dd, // dimension
- const ANNorthRect &r) // rectangle to copy
- { lo = annCopyPt(dd, r.lo); hi = annCopyPt(dd, r.hi); }
-
- ANNorthRect( // construct from points
- int dd, // dimension
- ANNpoint l, // low point
- ANNpoint h) // hight point
- { lo = annCopyPt(dd, l); hi = annCopyPt(dd, h); }
-
- ~ANNorthRect() // destructor
- { annDeallocPt(lo); annDeallocPt(hi); }
-
- ANNbool inside(int dim, ANNpoint p);// is point p inside rectangle?
-};
-
-void annAssignRect( // assign one rect to another
- int dim, // dimension (both must be same)
- ANNorthRect &dest, // destination (modified)
- const ANNorthRect &source); // source
-
-//----------------------------------------------------------------------
-// Orthogonal (axis aligned) halfspace
-// An orthogonal halfspace is represented by an integer cutting
-// dimension cd, coordinate cutting value, cv, and side, sd, which is
-// either +1 or -1. Our convention is that point q lies in the (closed)
-// halfspace if (q[cd] - cv)*sd >= 0.
-//----------------------------------------------------------------------
-
-class ANNorthHalfSpace {
-public:
- int cd; // cutting dimension
- ANNcoord cv; // cutting value
- int sd; // which side
-//
- ANNorthHalfSpace() // default constructor
- { cd = 0; cv = 0; sd = 0; }
-
- ANNorthHalfSpace( // basic constructor
- int cdd, // dimension of space
- ANNcoord cvv, // cutting value
- int sdd) // side
- { cd = cdd; cv = cvv; sd = sdd; }
-
- ANNbool in(ANNpoint q) const // is q inside halfspace?
- { return (ANNbool) ((q[cd] - cv)*sd >= 0); }
-
- ANNbool out(ANNpoint q) const // is q outside halfspace?
- { return (ANNbool) ((q[cd] - cv)*sd < 0); }
-
- ANNdist dist(ANNpoint q) const // (squared) distance from q
- { return (ANNdist) ANN_POW(q[cd] - cv); }
-
- void setLowerBound(int d, ANNpoint p)// set to lower bound at p[i]
- { cd = d; cv = p[d]; sd = +1; }
-
- void setUpperBound(int d, ANNpoint p)// set to upper bound at p[i]
- { cd = d; cv = p[d]; sd = -1; }
-
- void project(ANNpoint &q) // project q (modified) onto halfspace
- { if (out(q)) q[cd] = cv; }
-};
-
- // array of halfspaces
-typedef ANNorthHalfSpace *ANNorthHSArray;
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/AdaptInterface.h b/debian/tmp/usr/include/MAdLib/AdaptInterface.h
deleted file mode 100644
index 4620a57..0000000
--- a/debian/tmp/usr/include/MAdLib/AdaptInterface.h
+++ /dev/null
@@ -1,345 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_ADAPTINTERFACE
-#define _H_ADAPTINTERFACE
-
-// from Geo
-#include "ModelInterface.h"
-
-// from Mesh
-#include "MeshDataBaseInterface.h"
-#include "CheckMesh.h"
-#ifdef PARALLEL
-#include "MeshDataBaseComm.h"
-#endif
-
-// from Adapt
-#include "MAdOutput.h"
-#include "CallbackDefinition.h"
-
-#include <set>
-#include <string>
-#include <vector>
-
-namespace MAd {
-
- class SizeFieldManager;
- class geoMatcher;
- class mobileObjectSet;
- class MeshParametersManager;
-
- // Local mesh modification operators
- class edgeSplitOp;
- class edgeCollapseOp;
- class faceCollapseOp;
- class DESCOp;
- class edgeSwapOp;
- class faceSwapOp;
- class vertexMoveOp;
- class regionRemoveOp;
- class sliverFaceHandler;
- class sliverRegionHandler;
-
- // -------------------------------------------------------------------
-
- enum algorithmDefinition {
- SPT_SWP_SLV_CPS,
- CPS_SWP_SLV_SPT,
- SLV_CPS_SWP_SPT
- };
-#ifdef PARALLEL
- enum loadBalanceAlgorithm {
- DEFAULT_ALGORITHM,
- METIS_ALGORITHM
- };
-#endif
- // -------------------------------------------------------------------
- // -------------------------------------------------------------------
- class MeshAdapter {
-
- public:
-
- MeshAdapter(pMesh m, pSField sf=NULL);
- ~MeshAdapter();
-
- // --------------------------------------------
-
- // gives an overview of the current parameters
- void printParameters() const;
-
- void addCallback(CBFunction CB, void* userData,
- CBFunc_move CB_move=0, void* userData_move=0);
- void addSizeField(pSField sf);
-
- // whether or not the global size field is smoothed and maximum gradient
- void setSizeFieldSmoothing(bool, double maxGrad=1.);
-
- // set the maximum number of iterations available to reach the 'convergence'
- // of the global mesh adaptation procedure
- void setMaxIterationsNumber(int max);
-
-#ifdef PARALLEL
- // set load balancing algorithm
- void setLoadBalancingAlgorithm( loadBalanceAlgorithm lbAlgo );
- // set the data Exchanger
-// void setDataExchanger( MDB_DataExchanger* dataExch);
-#endif
-
- // impose the interval governing edges length in the transformed space
- void setEdgeLenSqBounds(double lower, double upper);
-
- // set permission for operators to modify slightly boundaries
- // (default: false) and tolerance for the relative volume/area
- // modifications.
- // Edge collapse and face collapse:
- void setCollapseOnBoundary(bool accept=true, double tolerance=1.e-6);
- // Edge swap:
- void setSwapOnBoundary(bool accept=true, double tolerance=1.e-6);
-
- // impose the element quality from which a swap is not required
- void setNoSwapQuality(double noSwapQuality);
-
- // impose a threshold rate of improvement for edge and face swaps
- void setSwapMinImproveRatio(double ratio);
-
- // impose the maximum quality of a sliver
- void setSliverQuality(double sliverQuality);
-
- // Allow or forbid operations creating a sliver.
- // If allowed and a bound is prescribed, it is allowed only if the edge is
- // longer/shorter than the bound (bound is expressed as the square of
- // adimensional edge length)
- void setSliverPermissionInESplit (bool perm, double lenSqBound=-1.);
- void setSliverPermissionInECollapse(bool perm, double lenSqBound=-1.);
-
- // tell if you want to project new vertices on geometric entities
- void setGeoTracking(bool enable, bool cavityEqualMesh=false,
- int cavityThickness=2, double chi=1.0,
- bool strictChecking=false, bool forceRelocation=false);
-
- // set a value for a very huge edge length (default=1.e14)
- void setInfiniteLength(double length);
-
- // frequency at which the size fields are updated inside the global loop
- // (useful for local and analytical SF)
- void setSFUpdateFrequency(int freq);
-
- // Set verbosity:
- // < 0 : no detail
- // 1 : global procedure details
- // > 2 : iterations details
- void setVerbosity(int _verbosity);
-
- // constraint a mesh/geometric entity and all its downward entities
- void clearConstraints() const;
- void setConstraint(pEntity e) const;
- void setConstraint(pGEntity ge) const;
- void setConstraint(int type, int id) const;
- // unconstrain a geometric entity
- void removeConstraint(int type, int id) const;
- void removeConstraint(pGEntity ge) const;
-
- // manage the physical time
- void incrementTime(double dt);
- void setTime(double t);
- double getTime() const;
- void updateSizeField();
-
- // functions to keep track of the initial coordinates
- void storeInitialCoordinates();
- void removeStoredCoordinates();
-
- // add predefined mobile objects
- void registerObjects(mobileObjectSet* objs);
-
- // will attach/get the datas to the nodes of the mesh
- // order in vector is the node iterator order
- void registerData (std::string name, const std::vector<double>) const;
- void registerVData (std::string name, const std::vector<std::vector<double> >) const;
- void getMeshData (std::string name, std::vector<double> *) const;
- void getMeshVData (std::string name, std::vector<std::vector<double> > *) const;
- void removeData (std::string name) const;
- void removeVData (std::string name) const;
-
- public:
-
- // ---------------- OPERATIONS ----------------
-
- // ----- Level 1 -----
- // ---> Elementary operations
-
- // Split the edge and if 'checkSize' is true, check that the two resulting
- // edges are not short edges.
- bool splitEdge (pEdge e, bool checkSize=false);
- bool collapseEdge (pEdge e);
- bool collapseFace(pFace f, pEdge e);
- bool DSplitCollapseEdge(pRegion pr, pEdge edge1, pEdge edge2);
- bool swapEdge (pEdge e);
- bool swapFace (pFace f);
- bool removeRegion(pRegion region);
- bool moveVertex (pVertex v, double dxyz[3]);
- bool putVertex (pVertex v, double xyz[3]);
- // bool moveVertices (std::multiset<vDisplacement,vDisplacementLess>& vDisps);
-
- // ----- Level 2 -----
- // ---> Loops on one elementary operation
-
- // node repositioning
- double LaplaceSmoothing();
-
- // topology operations
- int eSplitLoop();
- int eCollapseLoop();
- int eSplitCollapseLoop();
- int edgeSwapLoop();
- int faceSwapLoop();
- int splitEveryEdgeOnce();
-
- // slivers handling
- int removeSlivers();
-
- // geometry matching
- void snapVertices();
-
- // ----- Level 3 -----
- // ---> Procedures with a global objective
- int optimiseEdgeLength();
- int optimiseElementShape();
- int splitLongestEdges();
- int runOneIter();
- void uglyTheMesh(double avgQualThresh, int maxIt);
- int removeNegativeElements();
-
- // ----- Level 4 -----
- // ---> Global procedure
- void run();
-
- // ----- objects motion -----
- // move boundaries without repositioning nodes in the volume
- int partlyMoveObjects (double t, double dt, double* part);
- // move boundaries and reposition all nodes with an elasticity analogy
- // chi: stiffness alteration coefficient (-1 = none)
- // meshIsCavity: true = elastic computation on whole mesh
- // cavityThickness: nb layers of elements if mesh is not the cavity
- void moveObjectsAndReposition (double t, double dt, double chi=-1.,
- bool meshIsCavity=true,
- int cavityThickness=3);
-
- // --------------------------------------------
-
- public:
-
- // ------ Diagnostics ------
-
- // get informations on mesh quality
- void getStatistics(double * meanQuality, double * worstQuality) const;
-
- // about all datas attached to the nodes
- void nodalDataDiagnostics(std::ostream& out) const;
-
- // journals listing all operations tested or applied
- void setDebugLevel(int debug) { debugLevel = debug; }
- void openJournal() const;
- void setReferenceJournal(std::string& name) const;
- void flushJournal(std::ostream& out) const;
-
- // sliver outputs
- void enableSliverReports();
- void testSliverOperators(bool test);
-
- // performs several checks to check the validity of the mesh
- bool checkTheMesh(int verbose=1,
- std::ostream& out=std::cout,
- MeshStatus * status=NULL) const;
-
- // get infos about mobile objects
- void infoMobileObjects(std::ostream& out=std::cout) const;
-
- public:
-
- // ------ Outputs ------
-
- // set the path to output directory
- void setOutputPrefix(std::string prefix);
-
- // write mesh with required postpro data in 'pos' format (Gmsh)
- void writePos(std::string fn, MAdOutputData type=OD_CONSTANT) const;
-
- // write mesh in 'msh' format (Gmsh)
- void writeMsh(std::string fn) const;
-
- // write a .pos file with the 'volumic' curvature for every local size field
- void writeVolumicCurvature(std::string fnBase) const;
-
- // get global data over the mesh
- void printStatistics(std::ostream& out) const;
- void printSliverRegionStatistics(std::ostream& out) const;
-
- public:
-
- // save all available informations to output directory and abort
- void abort(int line=-1, const char* file=NULL) const;
-
- // --------------------------------------------
-
- private:
-
- void setDefaultValues();
- void buildOperators();
- void removeOperators();
-
- private:
-
- pMesh mesh;
- SizeFieldManager * SFManager;
-
- mobileObjectSet * objects;
-
- // ----- Local mesh modification operators -----
- edgeSplitOp * eSplitOp;
- edgeCollapseOp * eCollapseOp;
- faceCollapseOp * fCollapseOp;
- DESCOp * descOp;
- edgeSwapOp * eSwapOp;
- faceSwapOp * fSwapOp;
- vertexMoveOp * vMoveOp;
- regionRemoveOp * rRegionOp;
- sliverFaceHandler * sliverFOp;
- sliverRegionHandler * sliverROp;
-
- // ----- Geometry related -----
- geoMatcher * geoTracker;
-
- // ----- Adaptation parameters -----
- algorithmDefinition algorithm;
- int maxIterationsNumber;
- MeshParametersManager& mpm;
-#ifdef PARALLEL
- loadBalanceAlgorithm load_balance_algorithm;
- MDB_DataExchanger* dataExchanger;
-#endif
- int updateSFFrequency;
-
- // ----- Output parameters -----
- int verbosity;
- std::string outPrefix;
- int debugLevel;
- };
-
- // -------------------------------------------------------------------
-
-} // End of namespace MAd
-
-#endif
-
diff --git a/debian/tmp/usr/include/MAdLib/AnalyticalSField.h b/debian/tmp/usr/include/MAdLib/AnalyticalSField.h
deleted file mode 100644
index 62b3768..0000000
--- a/debian/tmp/usr/include/MAdLib/AnalyticalSField.h
+++ /dev/null
@@ -1,95 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_ANALYTICALSFIELD
-#define _H_ANALYTICALSFIELD
-
-#include "SizeFieldBase.h"
-
-#include <vector>
-
-namespace MAd {
-
- class MAdStringFieldEvaluator;
-
- // -------------------------------------------------------------------
- typedef pMSize (*sizeFunction)(const double[3],double);
-
- // -------------------------------------------------------------------
- class AnalyticalSField: public SizeFieldBase
- {
- public:
-
- AnalyticalSField();
- AnalyticalSField(std::string);
- AnalyticalSField(std::vector<std::string>,std::vector<std::string>,
- std::vector<std::string>,std::vector<std::string>);
- AnalyticalSField(sizeFunction);
- ~AnalyticalSField();
-
- public:
-
- sFieldType getType() const { return ANALYTICALSFIELD; }
- void describe() const;
-
- void scale(double);
-
- // set the size
- void setSize(sizeFunction);
- void setSize(const std::string);
- void setSize(std::vector<std::string>,std::vector<std::string>,
- std::vector<std::string>,std::vector<std::string>);
-
- // get the size at a location (allocate space!)
- pMSize getSize(const pVertex) const;
- pMSize getSizeOnEntity(const pEntity, const double[3]) const;
-
- // edge length (squared)
- double SF_VV_lengthSq(const pVertex, const pVertex) const;
- double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const;
-
- // face area (squared)
- double SF_F_areaSq(const pFace) const;
- double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const;
-
- // region volume
- double SF_R_volume(const pRegion) const;
- double SF_XYZ_volume(const double[4][3], const pMSize) const;
-
- // center and its associated size
- double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const;
- double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const;
-
- private:
-
- // description of the sizes if we use functions
- sizeFunction sFct;
-
- // description of the sizes if we use strings
- bool isotropic;
- std::string h0, h1, h2;
- std::vector<std::string> e0, e1, e2;
- MAdStringFieldEvaluator * evaluator;
-
- private:
-
- pMSize eval(const double[3]) const;
- };
-
-}
-
-// -------------------------------------------------------------------
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/BackgroundSF.h b/debian/tmp/usr/include/MAdLib/BackgroundSF.h
deleted file mode 100644
index 705729f..0000000
--- a/debian/tmp/usr/include/MAdLib/BackgroundSF.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_BACKGROUNDSF
-#define _H_BACKGROUNDSF
-
-#include "SizeFieldBase.h"
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- class BackgroundSF: public SizeFieldBase
- {
- public:
-
- BackgroundSF(std::string _name="");
- ~BackgroundSF();
-
- void loadData(std::string fileName);
-
- public:
-
- sFieldType getType() const { return BACKGROUNDSFIELD; }
-
- void scale(double) {throw;}
-
- // get the size at a location (allocate space!)
- pMSize getSize(const pVertex) const;
- pMSize getSizeOnEntity(const pEntity, const double[3]) const { throw; return 0; }
-
- // edge length (squared)
- double SF_VV_lengthSq(const pVertex, const pVertex) const { throw; return -1.; }
- double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const { throw; return -1.; }
-
- // face area (squared)
- double SF_F_areaSq(const pFace) const { throw; return -1.; }
- double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const { throw; return -1.; }
-
- // region volume
- double SF_R_volume(const pRegion) const { throw; return -1.; }
- double SF_XYZ_volume(const double[4][3], const pMSize) const { throw; return -1.; }
-
- // center and its associated size
- double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const { throw; return -1.; }
- double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const { throw; return -1.; }
-
- private:
-
- void setSize(pEntity, pMSize);
- void setSize(pEntity, double);
-
- void redistributeToVertices();
-
- pGModel bgModel;
- pMesh bgMesh;
- pMeshDataId pMSizeFieldId;
- };
-
-}
-
-// -------------------------------------------------------------------
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/CallbackDefinition.h b/debian/tmp/usr/include/MAdLib/CallbackDefinition.h
deleted file mode 100644
index e30e0a5..0000000
--- a/debian/tmp/usr/include/MAdLib/CallbackDefinition.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_CALLBACKDEFINITION
-#define _H_CALLBACKDEFINITION
-
-#include "MeshDataBaseInterface.h"
-#include "MAdOperations.h"
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- // callback functions
- typedef void (*CBFunction)(pPList, pPList,
- void *, operationType, pEntity);
- typedef void (*CBFunc_move)(pVertex, double *, void *);
-
- // -------------------------------------------------------------------
- struct CBStructure {
-
- CBFunction function;
- void* data;
-
- bool operator== (CBStructure cb) const {
- if ( function==cb.function && data==cb.data) return true;
- return false;
- }
- };
-
- // -------------------------------------------------------------------
- struct CBStructureMove {
- CBFunc_move function;
- void* data;
-
- bool operator== (CBStructureMove cbm) const {
- if ( function==cbm.function && data==cbm.data) return true;
- return false;
- }
- };
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/CheckMesh.h b/debian/tmp/usr/include/MAdLib/CheckMesh.h
deleted file mode 100644
index c7d2506..0000000
--- a/debian/tmp/usr/include/MAdLib/CheckMesh.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef _CHECKMESH_H_
-#define _CHECKMESH_H_
-
-#include "MeshDataBaseInterface.h"
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- typedef enum MeshStatus {
- VALID = 0,
- NEGATIVE_VOLUME = 1,
- GEOM_INCOMPATIBILITY = 2,
- WRONG_EDGE_TO_RGN_CONN = 3,
- WRONG_FACE_TO_RGN_CONN = 4,
- WRONG_FACE_TO_VTX_CONN = 5,
- WRONG_EDGE_CONN = 6,
- WRONG_ENTITY_POINTERS = 7,
- WRONG_ITERATORS = 8,
- WRONG_PARAMETERS = 9
- } MeshStatus;
-
- // -------------------------------------------------------------------
- typedef enum checkType {
- CHECK_ALL,
- CHECK_VOLUME,
- CHECK_GEOM_COMPATIBILITY,
- CHECK_EDGE_TO_RGN_CONN,
- CHECK_FACE_TO_RGN_CONN,
- CHECK_FACE_TO_VTX_CONN,
- CHECK_EDGE_CONN,
- CHECK_ENTITY_POINTERS,
- CHECK_ITERATORS,
- CHECK_PARAMETERS
- } checkType;
-
- // -------------------------------------------------------------------
- // return 1 if the mesh passes the test successfully, 0 otherwise
- bool checkMesh(MDB_Mesh * mesh, checkType type=CHECK_ALL, int verbose=1,
- std::ostream& out=std::cout, MeshStatus * status=NULL);
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/DiscreteSF.h b/debian/tmp/usr/include/MAdLib/DiscreteSF.h
deleted file mode 100644
index d3a7bdc..0000000
--- a/debian/tmp/usr/include/MAdLib/DiscreteSF.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_DISCRETESF
-#define _H_DISCRETESF
-
-#include "SizeFieldBase.h"
-
-#include <string>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- enum DiscreteSFType {
- UNKNOWN_DSFTYPE,
- VERTEX_P1_DSFTYPE
- };
-
- // -------------------------------------------------------------------
- class DiscreteSF : public SizeFieldBase
- {
- public:
-
- DiscreteSF(pMesh, std::string name="");
- ~DiscreteSF();
-
- sFieldType getType() const { return DISCRETESFIELD; }
- virtual DiscreteSFType discretization() const = 0;
- pMesh getMesh() { return mesh; }
-
- // delete sizes
- virtual void cleanUp() = 0;
- void deleteSize(pEntity);
-
- // Intersect with another size field
- virtual void intersect(const pSField) = 0;
-
- // smooth the size field
- virtual void smooth(double) = 0;
-
- // set a size at all vertices
- virtual void setCurrentSize() = 0;
- virtual void setCurvatureSize(bool aniso,
- double alpha=2., // prescribe 2*PI*alpha edges around a circle
- double hMin=1.e-4) = 0; // minimal size
- virtual void setAllVSizes(pMSize) = 0;
- virtual void setAllVSizes(double[3][3], double[3]) = 0;
- virtual void setAllVSizes(double) = 0;
- virtual void scale(double) = 0;
-
- // set the size at a vertex
- void setSize(pEntity, double[3][3], double[3]);
- void setSize(pEntity, pMSize);
- void setSize(pEntity, double);
- void setSize(int, double);
-
- // get the size at a location (allocate space!)
- virtual pMSize getSize(const pVertex) const = 0;
- virtual pMSize getSizeOnEntity(const pEntity, const double[3]) const = 0;
-
- // get the size at a vertex (do not allocate space)
- virtual const pMSize findSize(const pVertex) const = 0;
- virtual pMSize findSize(const pVertex) = 0;
-
- // edge length (squared)
- virtual double SF_VV_lengthSq(const pVertex, const pVertex) const = 0;
- virtual double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const = 0;
-
- // face area (squared)
- virtual double SF_F_areaSq(const pFace) const = 0;
- virtual double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const = 0;
-
- // region volume
- virtual double SF_R_volume(const pRegion) const = 0;
- virtual double SF_XYZ_volume(const double[4][3], const pMSize) const = 0;
-
- // center and its associated size
- virtual double SF_E_center(const pEdge, double[3], double *reducSq, pMSize *) const = 0;
- virtual double SF_VV_center(const pVertex, const pVertex,
- double[3], double *reducSq, pMSize *) const = 0;
-
- protected:
-
- pMesh mesh;
- int dim;
- pMeshDataId pMSizeFieldId;
-
- };
-
-}
-
-// -------------------------------------------------------------------
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/DistanceFunction.h b/debian/tmp/usr/include/MAdLib/DistanceFunction.h
deleted file mode 100644
index 7fcb8ae..0000000
--- a/debian/tmp/usr/include/MAdLib/DistanceFunction.h
+++ /dev/null
@@ -1,135 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_DISTANCEFUNCTION
-#define _H_DISTANCEFUNCTION
-
-#include "MeshDataBaseInterface.h"
-#include "DistanceToPoints.h"
-#include <set>
-#include <map>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- // This class computes and stores:
- // - the distance to a set of vertices, edges or faces
- // (as attached double),
- // - the gradient of the distance (as attached pointer),
- // - the Laplacian of the distance (as attached double).
- //
- // There are two ways to compute the distance:
- // - to a set of vertices (inacurate to represent a wall)
- // - to a set of edges(2D)/faces(3D) (more accurate, more expensive)
- // The choice is governed by the variable 'distToEntities'
- // -------------------------------------------------------------------
- class distanceFunction {
-
- public:
-
- distanceFunction(pMesh m, bool _distToEntities);
- ~distanceFunction();
-
- void computeTree(const std::set<pVertex>&, const std::set<pEntity>&);
-
- void clearVertexData(pVertex pv) const;
-
- // Distance
-
- void computeAllDistances() const;
- double getDistance(const pVertex pv) const;
- void clearDistance(const pVertex pv) const;
- void clearDistances() const;
-
- double computeDistance(const double xyz[3]) const;
- double computeDistSq (const double xyz[3]) const;
-
- void outputDistance(const char * fn) const;
-
- // Gradient of the distance
-
- void computeAllDistAndGrad() const; // the most accurate for gradients
-
- void computeGradientAtVertices(); // not accurate
- void clearGradientAtVertices();
- bool getGradient(const pVertex pv, double grad[3]) const;
- bool getGradientOnEntity(const pEntity entity,
- const double xyz[3],
- double grad[3]) const;
- void attachGradient(pVertex pv, double grad[3]) const;
-
- void outputGradAtVertices(const char * fn) const;
-
- // Curvature ( Laplacian of the distance )
-
- void computeGradientAndCurvature(const std::set<pRegion>& regs); // not accurate...
-
- void computeCurvature(const std::set<pRegion>& regs);
- void smoothCurvature(int nbSmoothings=1) const;
- bool getCurvature(const pVertex pv, double *c) const;
- bool getCurvatureOnEntity(const pEntity entity,
- const double xyz[3],
- double *curv) const;
- void clearCurvature() const;
- void attachCurvature(pVertex pv, double curv) const;
-
- void outputCurvature(const char * fn) const;
-
- private:
-
- double computeDistance(const pVertex pv) const;
- void computeGradientInElements() const;
- void clearGradientInElements() const;
-
- bool getGradientOnEdge(const pEdge edge,
- const double xyz[3],
- double grad[3]) const;
- bool getGradientOnEdgeParam(const pEdge pE,
- const double u,
- double grad[3]) const;
- bool getGradientOnFace(const pFace face,
- const double xyz[3],
- double grad[3]) const;
- bool getGradientOnFaceParam(const pFace face,
- const double u[2],
- double grad[3]) const;
- bool getGradientOnRegion(const pRegion region,
- const double xyz[3],
- double grad[3]) const;
- bool getGradientOnRegionParam(const pRegion region,
- const double u[3],
- double grad[3]) const;
-
- private:
-
- pMesh mesh;
- pMeshDataId distId, vGradId, rGradId, vCurvId;
-
- // true: distance computed to a set of edges (2D) or faces (3D)
- // false: distance computed to a set of vertices
- bool distToEntities;
-
- int nVert, nEnt;
- int nVE; // number of vertices in a wall entity
- double * xyzV; // coordinates of the vertices sorted by local ids with contiguous xyz
- int * entToV; // entities vertices (by local id)
- std::multimap<int,int> vToEnt; // vertices entities
- SearchTool * kdSearch;
- std::map<pVertex,int> pvToSearchId;
-
- };
-
- // -------------------------------------------------------------------
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/DistanceToPoints.h b/debian/tmp/usr/include/MAdLib/DistanceToPoints.h
deleted file mode 100644
index 30b6793..0000000
--- a/debian/tmp/usr/include/MAdLib/DistanceToPoints.h
+++ /dev/null
@@ -1,152 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_DISTANCETOPOINTS
-#define _H_DISTANCETOPOINTS
-
-#include <stdio.h>
-
-#ifdef _HAVE_ANN_
-#include "ANN.h"
-#endif
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- class MAd_searchTool {
-
- public:
- MAd_searchTool() {
- printf("Error: no search tool implemented: flag _HAVE_ANN_ not set\n");
- throw;
- }
- void reset() { throw; }
- void allocatePoints(int n) { throw; }
- void addPoint(int index, double xyz[3]) { throw; }
- void allocateTree(int n) { throw; }
- double computeDistanceSq(const double xyz[3], int * id=NULL) const { throw; }
- };
-
- // -------------------------------------------------------------------
-#ifdef _HAVE_ANN_
- class ANN_searchTool {
-
- public:
-
- ANN_searchTool()
- {
- kdTree = NULL;
- points = NULL;
- }
-
- ~ANN_searchTool()
- {
- if (kdTree) { delete kdTree; kdTree = NULL; }
- if (points) { annDeallocPts(points); points = NULL; }
- annClose();
- }
-
- void reset()
- {
- if (kdTree) { delete kdTree; kdTree = NULL; }
- if (points) { annDeallocPts(points); points = NULL; }
- }
-
- void allocatePoints(int n)
- {
- if (points) annDeallocPts(points);
- points = annAllocPts(n,3);
- }
-
- void addPoint(int index, double xyz[3])
- {
- for (int i=0; i<3; i++) points[index][i] = xyz[i];
- }
-
- void allocateTree(int n)
- {
- if (kdTree) delete kdTree;
- kdTree = new ANNkd_tree(points, n, 3);
- }
-
- double computeDistanceSq(const double xyz[3], int * id=NULL) const
- {
- if (!kdTree) {
- printf("Error: no research tree built\n");
- throw;
- }
-
- double xyz_copy[3]; // because the first argument of annkSearch is not const
- for (int i=0; i<3; i++) xyz_copy[i] = xyz[i];
- int maxpts = 1;
- // the use of allocation is done due to ms visual c++ compiler
- // that do not support c99 standard (it uses the c95 et c++98 standards)
- ANNidx* index= new ANNidx[maxpts];
- ANNdist* distSq= new ANNdist[maxpts];
- kdTree->annkSearch(xyz_copy, maxpts, index, distSq);
- double theDistSq = distSq[0];
- if ( id ) *id = index[0];
- delete [] index;
- delete [] distSq;
- return theDistSq;
- }
-
- // Compute gradient of the square distance to the cloud of points
- // by non-centered differences. Central differences would lead to
- // zero gradients for points located on the walls (distance is not signed).
- double gradDistanceSq(const double xyz[3], double grad[3]) const
- {
- double dSq = computeDistanceSq(xyz);
- double eps = 1.e-3;
- double dEps[2];
-
- int maxpts = 1;
- ANNidx* index= new ANNidx[maxpts];
- ANNdist* distSq= new ANNdist[maxpts];
- double tmp[3];
- tmp[0] = xyz[0]; tmp[1] = xyz[1]; tmp[2] = xyz[2];
- for (int i=0; i<3; i++) {
- tmp[i] += eps;
- kdTree->annkSearch(tmp, maxpts, index, distSq);
- dEps[0] = distSq[0];
- tmp[i] -= 2*eps;
- kdTree->annkSearch(tmp, maxpts, index, distSq);
- dEps[1] = distSq[1];
- tmp[i] += eps;
- grad[i] = 1000. * ( dEps[1] - dEps[0] );
- }
-
- return dSq;
- }
-
- private:
-
- ANNkd_tree * kdTree;
- ANNpoint * points;
- };
-
- typedef ANN_searchTool SearchTool;
-
- // -------------------------------------------------------------------
-#else
-
- typedef MAd_searchTool SearchTool;
-
- // -------------------------------------------------------------------
-#endif
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/LocalSizeField.h b/debian/tmp/usr/include/MAdLib/LocalSizeField.h
deleted file mode 100644
index 02203da..0000000
--- a/debian/tmp/usr/include/MAdLib/LocalSizeField.h
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_LOCALSIZEFIELD
-#define _H_LOCALSIZEFIELD
-
-#include "SizeFieldBase.h"
-#include "DistanceFunction.h"
-
-#include <set>
-#include <utility>
-#include <string>
-
-// -------------------------------------------------------------------
-/*
- This class stores a size field around an object.
- * The object is defined by a set of geometrical entities.
- * The size field is defined by a radius and strings giving the
- size in function of the distance to the object.
- * Returns:
- - If the distance is superior to the radius, the class
- returns a huge size.
- - Otherwise, it can return one of these sizes:
- - an isotropic size (evaluated from 'sizeN')
- - an anisotropic size with a main axis in the normal
- direction to the object and a corresponding value ('sizeN'),
- and two axis in the tangent directions with another value
- ('sizeT').
-*/
-// -------------------------------------------------------------------
-
-namespace MAd {
-
- class MAdStringFieldEvaluator;
-
- // -------------------------------------------------------------------
- class LocalSizeField : public SizeFieldBase {
-
- public:
-
- LocalSizeField(pMesh m, std::string name="", bool _distToFaces=false);
- LocalSizeField(const LocalSizeField& _lsf);
- ~LocalSizeField();
-
- sFieldType getType() const { return LOCALSFIELD; }
-
- void scale(double);
-
- void addGeometricEntity(int type, int tag);
- void updateTree();
-
- void setIsoSize(double _radius, std::string _sizeN);
- void setAnisoSize(double _radius, std::string _sizeN, std::string _sizeT);
- void setCurvatureLimiter(double onTgSize, double _maxCurv=1.e12);
-
- // get the size at a location (allocate space!)
- pMSize getSize(const pVertex) const;
- pMSize getSizeOnEntity(const pEntity, const double[3]) const;
-
- // edge length (squared)
- double SF_VV_lengthSq(const pVertex, const pVertex) const;
- double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const;
-
- // face area (squared)
- double SF_F_areaSq(const pFace) const;
- double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const;
-
- // region volume
- double SF_R_volume(const pRegion) const;
- double SF_XYZ_volume(const double[4][3], const pMSize) const;
-
- // center and its associated size
- double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const;
- double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const;
-
- // divergence of the curvature
- bool getCurvature(const pVertex pv, double *c) const;
-
- private:
-
- void collectEntities(std::set<pVertex> * verts,
- std::set<pEntity> * ents) const;
-
- private:
-
- pMesh mesh;
-
- std::set<pGEntity> geomEntities;
- int geoDim;
-
- bool isotropic;
- double radius;
- std::string sizeN, sizeT;
- MAdStringFieldEvaluator * sEvalN, * sEvalT;
-
- bool distToFaces; // true: distance computed to the faces of the wall (exact)
- // false: distance computed to the vertices of the wall
- distanceFunction dFct; // tool to compute distance and its derivatives
-
- // limiters based on curvature
- bool limit;
- double tgSizeLimitCoef;
- double maxCurv;
- };
-
-}
-
-// -------------------------------------------------------------------
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/MAdLib.h b/debian/tmp/usr/include/MAdLib/MAdLib.h
deleted file mode 100644
index abb50e4..0000000
--- a/debian/tmp/usr/include/MAdLib/MAdLib.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_MAD_MADLIB
-#define _H_MAD_MADLIB
-
-// interface to the geometrical model
-#include "ModelInterface.h"
-
-// interface to the mesh
-#include "MeshDataBaseInterface.h"
-#include "MeshDataBaseParallelInterface.h"
-#include "MeshDataBaseComm.h"
-#include "MeshDataBaseCommPeriodic.h"
-#include "CheckMesh.h"
-
-// interface to mesh adaptation
-#include "AdaptInterface.h"
-#include "SizeField.h"
-#include "CallbackDefinition.h"
-#include "MobileObject.h"
-
-//! Needed with the Gmsh geometrical model
-void MAdLibInitialize(int * argc, char** argv[]);
-void MAdLibFinalize();
-
-#endif
-
diff --git a/debian/tmp/usr/include/MAdLib/MAdOperations.h b/debian/tmp/usr/include/MAdLib/MAdOperations.h
deleted file mode 100644
index 1425e13..0000000
--- a/debian/tmp/usr/include/MAdLib/MAdOperations.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_MADOPERATIONS
-#define _H_MADOPERATIONS
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- enum operationType {
- MAd_UNKNOWNOPERATION = 0,
- MAd_VERTEXMOVE = 1,
- MAd_ESPLIT = 2,
- MAd_ECOLLAPSE = 3,
- MAd_FCOLLAPSE = 4,
- MAd_DESPLTCLPS = 5,
- MAd_ESWAP = 6,
- MAd_FSWAP = 7,
- MAd_RREMOVE = 8
- };
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/MAdOutput.h b/debian/tmp/usr/include/MAdLib/MAdOutput.h
deleted file mode 100644
index 47bd193..0000000
--- a/debian/tmp/usr/include/MAdLib/MAdOutput.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_MADOUTPUT
-#define _H_MADOUTPUT
-
-#include "SizeFieldBase.h"
-#include "MeshDataBaseInterface.h"
-
-#include <string>
-#include <set>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- typedef enum MAdOutputData {
- OD_CONSTANT = 0,
- OD_MEANRATIO = 1,
- OD_ORIENTEDMEANRATIO = 2,
- OD_SIZEFIELD_MEAN = 3,
- OD_SIZEFIELD_MIN = 4,
- OD_SIZEFIELD_MAX = 5,
- OD_DIMENSION = 6,
- OD_ITERORDER = 7,
- OD_CURVATURE_DIV = 8,
- OD_CURVATURE_MAX = 9,
- OD_CURVATURE_MIN = 10,
- OD_CURVATURE_MAX_VEC = 11,
- OD_CURVATURE_MIN_VEC = 12,
- OD_ANISO_SF_AXIS0 = 13,
- OD_ANISO_SF_AXIS1 = 14,
- OD_ANISO_SF_AXIS2 = 15
- } MAdOutputData;
-
- // -------------------------------------------------------------------
-
- void MAdGmshOutput(const pMesh m, const pSField sf,
- const char *fn, MAdOutputData type);
-
- void MAdAttachedNodalDataOutput (const pMesh m, const char *fn,
- pMeshDataId id);
- void MAdAttachedNodalDataVecOutput(const pMesh m, const char *fn,
- pMeshDataId id);
-
- void printPosEntities(const pPList ents, std::string fn, MAdOutputData type,
- const pSField sf=NULL, int id=0);
-
- void printPosRegions(const std::set<pRegion>, std::string fn, MAdOutputData type,
- const pSField sf=NULL, int id=0);
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/MeshDataBaseComm.h b/debian/tmp/usr/include/MAdLib/MeshDataBaseComm.h
deleted file mode 100644
index 8d2bbce..0000000
--- a/debian/tmp/usr/include/MAdLib/MeshDataBaseComm.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Cecile Dobrzynski, Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef _MeshDataBaseCOMM_H
-#define _MeshDataBaseCOMM_H
-
-#include "MeshDataBaseInterface.h"
-
-/*
- MDB_DataExchanger is a class that allow user to exchange
- data's between partitions and/or periodic boundaries. User
- has to provide a tag for non synchronous communications.
- Basically, choose a tag that is higher that 200 for being
- sure that it does not interact with internal messages.
- User has to allocate buffers using malloc.
-
- User will receive its datas.
-*/
-
-namespace MAd {
-
- class MDB_DataExchanger
- {
- private:
- int tagComm;
- public :
- // get a tag for the communication
- int tag() const { return tagComm; }
- // user allocates sends a message of _size size related to mesh entity pe to proc iProc
- virtual void * sendData (pEntity pe, // in
- int iProcDest , // in
- int &_size ) = 0; // out
- // mesh entity pe recieves data *buf form proc iProc.
- // The user shall NOT delete the message !!
- virtual void receiveData (pEntity pe, //in
- int iProcSender , //in
- void *buf ) = 0; //in
- // In case the user has to delete a data when 'pe' is deleted
- virtual void deleteExternalData (pEntity pe) const {}
- MDB_DataExchanger(int _tag): tagComm(_tag) {}
- virtual ~MDB_DataExchanger() {}
- };
- void exchangeDataOnVertices (pMesh m, MDB_DataExchanger &de );
- void exchangeDataOnEdges (pMesh m, MDB_DataExchanger &de );
- void exchangeDataOnFaces (pMesh m, MDB_DataExchanger &de );
- void exchangeDataOnTriangles(pMesh m, MDB_DataExchanger &de );
- void exchangeDataOnQuads (pMesh m, MDB_DataExchanger &de );
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/MeshDataBaseCommPeriodic.h b/debian/tmp/usr/include/MAdLib/MeshDataBaseCommPeriodic.h
deleted file mode 100644
index 1de3f97..0000000
--- a/debian/tmp/usr/include/MAdLib/MeshDataBaseCommPeriodic.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Cecile Dobrzynski, Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef _MeshDataBaseCommPerio_H
-#define _MeshDataBaseCommPerio_H
-
-/*
- MDB_DataExchangerPeriodic is a class that allow user to define function for
- periodic boundaries.
-*/
-
-namespace MAd {
-
- class MDB_DataExchangerPeriodic
- {
- public :
- virtual int nbRefPeriodic() const = 0;
- virtual void fperiodic (const int inv,
- const double X,
- const double Y,
- const double Z,
- int numref, // number of the transformation
- double *Xnew,
- double *Ynew,
- double *Znew) = 0;
- virtual ~MDB_DataExchangerPeriodic() {};
- };
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/MeshDataBaseInterface.h b/debian/tmp/usr/include/MAdLib/MeshDataBaseInterface.h
deleted file mode 100644
index 0698d93..0000000
--- a/debian/tmp/usr/include/MAdLib/MeshDataBaseInterface.h
+++ /dev/null
@@ -1,409 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef H_MESHDATABASEINTEFACE
-#define H_MESHDATABASEINTEFACE
-
-#include "ModelInterface.h"
-#include <iostream>
-#include <set>
-
-namespace MAd {
-
- class MDB_DataExchangerPeriodic;
-
- typedef unsigned int pMeshDataId;
-
- typedef class MDB_Mesh * pMesh;
-
- typedef class MDB_MeshEntity * pEntity;
- typedef class MDB_Region * pRegion;
- typedef class MDB_Face * pFace;
- typedef class MDB_Edge * pEdge;
- typedef class MDB_Point * pVertex;
- typedef class MDB_Point * pPoint;
-
- typedef class MDB_RegionIter * RIter;
- typedef class MDB_FaceIter * FIter;
- typedef class MDB_EIter * EIter;
- typedef class MDB_VIter * VIter;
-
- typedef class PList * pPList;
-
- /********************/
- /* Mesh Operators */
- /********************/
-
- pMesh M_new(pGModel);
- void M_delete(pMesh);
- void M_load(pMesh, const char * filename);
- void M_clean(pMesh);
-
- void M_shrink(pMesh);
- void M_expand(pMesh);
-
- void M_info(const pMesh, std::ostream& out=std::cout);
- pGModel M_model(pMesh);
- int M_dim(pMesh);
-
- int M_edgesMaxOrder(pMesh);
- int M_facesMaxOrder(pMesh);
- int M_regionsMaxOrder(pMesh);
- int M_maxOrder(pMesh);
-
- bool M_isParametric(pMesh);
-
- void M_writeMsh(const pMesh, const char *name, int version=2,
- const int * partitionTable=NULL);
- void M_writeMshPer(pMesh, const char *name,
- MDB_DataExchangerPeriodic &, int version);
-
-#ifdef _HAVE_METIS_
- void M_Partition(pMesh, int nbParts, const char * filename);
-#endif
-
- int M_numRegions(pMesh);
- int M_numTets(pMesh);
- int M_numHexes(pMesh);
- int M_numPrisms(pMesh);
- int M_numFaces(pMesh);
- int M_numQuads(pMesh);
- int M_numTriangles(pMesh);
- int M_numEdges(pMesh);
- int M_numVertices(pMesh);
-
- RIter M_regionIter(pMesh);
- FIter M_faceIter(pMesh);
- EIter M_edgeIter(pMesh);
- VIter M_vertexIter(pMesh);
-
- int M_numClassifiedRegions (pMesh, pGEntity);
- int M_numClassifiedFaces (pMesh, pGEntity);
- int M_numClassifiedEdges (pMesh, pGEntity);
- int M_numClassifiedVertices(pMesh, pGEntity);
-
- RIter M_classifiedRegionIter(pMesh, pGEntity);
- FIter M_classifiedFaceIter (pMesh, pGEntity, int closure);
- EIter M_classifiedEdgeIter (pMesh, pGEntity, int closure);
- VIter M_classifiedVertexIter(pMesh, pGEntity, int closure);
- pVertex M_classifiedVertex (pMesh, pGVertex);
-
- void M_classifyEntities(pMesh);
-
- /* mesh entity creation routines */
- pRegion M_createR(pMesh, int nFace, pFace faces[], pGEntity pg=NULL);
- pRegion M_createR(pMesh, int nVert, pVertex verts[], pGEntity pg=NULL);
- pRegion M_createR(pMesh, int nVert, int vertIds[], pGEntity pg=NULL);
- pRegion M_createTet(pMesh, int order, bool serendip, int vertIds[], pGEntity pg=NULL);
- pFace M_createF(pMesh, int nEdge, pEdge edges[], pGEntity pg=NULL);
- pFace M_createF(pMesh, int nVert, pVertex verts[], pGEntity pg=NULL);
- pFace M_createF(pMesh, int nVert, int vertIds[], pGEntity pg=NULL);
- pFace M_createTri(pMesh, int order, int vertIds[], pGEntity pg=NULL);
- pEdge M_createE(pMesh, pVertex v1, pVertex v2, pGEntity pg=NULL);
- pEdge M_createE(pMesh, int vId1, int vId2, pGEntity pg=NULL);
- pEdge M_createE(pMesh, pVertex v1, pVertex v2, int order=1,
- pVertex pts[]=NULL, pGEntity pg=NULL);
- pVertex M_createV(pMesh, double x, double y, double z, int patch, pGEntity pg=NULL);
- pVertex M_createV2(pMesh, double xyz[3], int patch, pGEntity pg=NULL);
- pVertex M_createVP(pMesh, double x, double y, double z,
- double u, double v, int patch, pGEntity pg=NULL);
-
- /* mesh entity deletion routines */
- void M_removeRegion(pMesh, pRegion);
- void M_removeFace (pMesh, pFace);
- void M_removeEdge (pMesh, pEdge);
- void M_removeVertex(pMesh, pVertex);
- void P_delete(pPoint);
- pPoint P_new(void);
-
- /* extra access to entities */
- pRegion M_region(pMesh, int []);
- pFace M_face (pMesh, int []);
- pEdge M_edge (pMesh, int, int);
- pVertex M_vertex(pMesh, int);
-
-
- /***********************/
- /* Geometric model ops */
- /***********************/
- /* deprecated (rather use ModelInterface) */
-
- void M_setGeomFeature (pMesh, int, pGEntity);
- int M_numGeomFeatures (pMesh);
- int M_geomFeatureId (pMesh, int ith);
- pPGList M_geomFeature (pMesh, int id);
- void M_printGeomFeatures (pMesh);
-
- /********************/
- /* Entity Iter Ops */
- /********************/
-
- pRegion RIter_next (RIter);
- void RIter_delete(RIter);
- void RIter_reset (RIter);
- pFace FIter_next (FIter);
- void FIter_delete(FIter);
- void FIter_reset (FIter);
- pEdge EIter_next (EIter);
- void EIter_delete(EIter);
- void EIter_reset (EIter);
- pVertex VIter_next (VIter);
- void VIter_delete(VIter);
- void VIter_reset (VIter);
-
- /********************/
- /* Entity Operators */
- /********************/
-
- void EN_info(const pEntity, std::string name="", std::ostream& out=std::cout);
- void EN_setID(pEntity, int id);
- int EN_id (pEntity);
- void EN_print(pEntity);
-
- int EN_type(pEntity);
- int EN_whatInType(pEntity);
- pGEntity EN_whatIn(pEntity);
- void EN_setWhatIn(pEntity,pGEntity);
-
- int EN_numVertices(const pEntity);
- pPList EN_vertices(const pEntity);
- int EN_inClosure(pEntity, pEntity);
-
- /********************/
- /* Region Operators */
- /********************/
-
- void R_info (const pRegion, std::string name="", std::ostream& out=std::cout);
- void R_info_quality (const pRegion, std::ostream& out=std::cout);
- void R_info_topology(const pRegion, std::ostream& out=std::cout);
-
- pGRegion R_whatIn(pRegion);
- int R_whatInType(pRegion);
- void R_setWhatIn(pRegion, pGEntity);
-
- int R_numPoints(pRegion);
- pPoint R_point(pRegion,int);
- int R_numVertices(pRegion);
- pPList R_vertices(pRegion);
- pVertex R_vertex(pRegion, int);
- pVertex R_fcOpVt(const pRegion, const pFace);
- pPList R_edges(pRegion);
- pEdge R_edge(pRegion, int);
- pEdge R_gtOppEdg(const pRegion, const pEdge);
- int R_numFaces(pRegion);
- pFace R_face(pRegion, int);
- pPList R_faces(pRegion);
- pFace R_vtOpFc(const pRegion, const pVertex);
- int R_inClosure(pRegion, pEntity);
- int R_faceDir(pRegion, int);
- int R_faceOri(pRegion, int);
- int R_dirUsingFace(pRegion,pFace);
- int R_oriUsingFace(pRegion,pFace);
-
- void R_coordP1(const pRegion, double [][3]);
- void R_coord(const pRegion, double [][3]);
- double R_volume(const pRegion);
- double R_XYZ_volume (const double [][3]);
- double R_circumRad(const pRegion);
- double R_inscrRad(const pRegion);
- bool R_meanRatioCube(const pRegion, double *);
- bool R_XYZ_meanRatioCube(const double [][3], double *);
- bool R_XYZ_isFlat(const double [][3]);
- void R_linearParams(const pRegion, const double[3], double[3]);
- void R_center(const pRegion, double [3]);
- void R_jacobian(const pRegion, double [3][3]);
- double R_invJacobian(const pRegion, double [3][3]);
- void R_box(const pRegion, double [3][2]);
- bool R_inBox(const pRegion, const double [3], double);
- bool R_contains(const pRegion, const double [3], double);
-
- /********************/
- /* Face Operators */
- /********************/
-
- void F_info(const pFace, std::string name="", std::ostream& out=std::cout);
-
- pFace F_exist(pEntity, pEntity, pEntity, pEntity);
- pFace F_exist(pEdge,pVertex);
-
- pGEntity F_whatIn(pFace);
- int F_whatInType(pFace);
- void F_setWhatIn(pFace, pGEntity);
-
- pPoint F_point(pFace, int);
- int F_numPoints(pFace);
- int F_numPointsTot(pFace);
- int F_numVertices(pFace);
- pPList F_vertices(pFace, int dir);
- pVertex F_vertex(pFace, int);
- pEdge F_vtOpEd(const pFace, const pVertex);
- int F_numEdges(pFace);
- pPList F_edges(pFace);
- pEdge F_edge(pFace, int);
- int F_edgeDir(pFace, int);
- pEdge F_findEdge(const pFace, const pVertex, const pVertex);
- pVertex F_edOpVt(const pFace, const pEdge);
- int F_dirUsingEdge(pFace, pEdge);
- int F_numRegions(pFace);
- pPList F_regions(pFace);
- pRegion F_region(pFace, int);
- pRegion F_otherRegion(const pFace, const pRegion);
- int F_inClosure(pFace, pEntity);
- void F_chDir(pFace);
- int F_align(pFace,pVertex,pVertex,pVertex,pVertex);
-
- void F_coordP1(const pFace, double [][3]);
- void F_coord(const pFace, double [][3]);
- bool F_params(const pFace, double [][2]);
- double F_area(const pFace, const double *dir=NULL);
- double XYZ_F_area(const double [][3], const double *dir=NULL);
- double F_areaSq(const pFace, const double *dir=NULL);
- double XYZ_F_areaSq(const double [][3], const double *dir=NULL);
- void F_linearParams(const pFace, const double[3], double[2]);
- void F_center(const pFace, double [3]);
- void F_normal(const pFace, double [3]);
- void XYZ_F_normal(const double [3][3], double [3]);
- bool F_volumeRatio(const pFace, double *);
- double F_worstVolumeRatio(const std::set<pFace>);
-
- /********************/
- /* Edge Operators */
- /********************/
-
- void E_info(const pEdge, std::string name="", std::ostream& out=std::cout);
-
- pEdge E_exist(pVertex, pVertex);
-
- pGEntity E_whatIn(pEdge);
- int E_whatInType(pEdge);
- void E_setWhatIn(pEdge, pGEntity);
-
- int E_numPoints(pEdge);
- pPoint E_point(pEdge, int);
- pVertex E_vertex(pEdge, int);
- pPList E_vertices(const pEdge);
- pVertex E_otherVertex(pEdge, pVertex);
- int E_numFaces(pEdge);
- pPList E_faces(const pEdge);
- pFace E_face(pEdge, int);
- pFace E_otherFace(pEdge, pFace);
- pFace E_otherFace(pEdge, pFace, pRegion);
- int E_numRegions(pEdge);
- pPList E_regions(pEdge);
- int E_inClosure(pEdge, pEntity);
- int E_dir(pEdge, pVertex, pVertex);
- int E_align(pEdge, pVertex,pVertex);
-
- void E_coordP1(const pEdge, double [][3]);
- void E_coord(const pEdge, double [][3]);
- bool E_params(const pEdge, double [2][2]);
- double E_length(const pEdge);
- double E_lengthSq(const pEdge);
- double E_linearParams(const pEdge, const pVertex);
- double E_linearParams(const pEdge, const double[3]);
- void E_center(const pEdge, double[3]);
- void E_cavityCenter(const pEdge, double[3]);
-
- /********************/
- /* Point Operators */
- /********************/
-
- double P_x(pPoint);
- double P_y(pPoint);
- double P_z(pPoint);
- void P_setPos(pPoint, double x, double y, double z);
-
- void P_setID(pPoint, int);
- int P_id(pPoint);
-
- double P_param1(pPoint);
- void P_setParam1(pPoint, double);
-
- /********************/
- /* Vertex Operators */
- /********************/
-
- void V_info(const pVertex, std::string name="", std::ostream& out=std::cout);
-
- pGEntity V_whatIn(pVertex);
- int V_whatInType(pVertex);
- void V_setWhatIn(pVertex, pGEntity);
-
- pPoint V_point(pVertex);
- int V_numEdges(pVertex);
- pPList V_edges(pVertex);
- pEdge V_edge(pVertex, int);
- int V_numFaces(pVertex);
- pPList V_faces(pVertex);
- int V_numRegions(pVertex);
- pPList V_regions(pVertex);
-
- int V_id(const pVertex);
-
- void V_coord(const pVertex, double [3]);
- bool V_params(pVertex, double *, double *);
- double V_meanEdgeLenSq(const pVertex);
- void V_cavityCenter(const pVertex, double[3]);
-
- /***************************/
- /* Entities list operators */
- /***************************/
-
- pPList PList_new();
- pPList PList_allocate( );
- void PList_delete (pPList);
- void PList_deallocate (pPList);
- void PList_clear (pPList);
- pPList PList_appPListUnique (pPList, pPList source);
- pPList PList_appUnique (pPList, pEntity);
- pPList PList_append (pPList, pEntity);
- int PList_size (pPList);
- pEntity PList_item (pPList, int n);
- pEntity PList_next (pPList, void ** restart);
- int PList_inList (pPList, pEntity);
- void PList_remItem (pPList, pEntity);
-
- /***********************/
- /* Attached data tools */
- /***********************/
-
- pMeshDataId MD_newMeshDataId(const std::string="");
- pMeshDataId MD_lookupMeshDataId(const std::string);
- void MD_deleteMeshDataId(pMeshDataId);
-
- void EN_attachDataInt(pEntity, pMeshDataId, int);
- void EN_attachDataDbl(pEntity, pMeshDataId, double);
- void EN_attachDataPtr(pEntity, pMeshDataId, void *);
- void EN_attachDataP (pEntity, const char *, void *);
- void EN_attachDataI (pEntity, const char *, int);
-
- void EN_modifyDataInt(pEntity, pMeshDataId, int);
- void EN_modifyDataDbl(pEntity, pMeshDataId, double);
- void EN_modifyDataPtr(pEntity, pMeshDataId, void *);
- int EN_modifyDataP (pEntity, const char *, void *);
- int EN_modifyDataI (pEntity, const char *, int);
-
- void EN_deleteData(pEntity, pMeshDataId);
- void EN_removeData(pEntity, const char *);
-
- int EN_getDataInt(pEntity, pMeshDataId, int *);
- int EN_getDataDbl(pEntity, pMeshDataId, double *);
- int EN_getDataPtr(pEntity, pMeshDataId, void **);
- void * EN_dataP(pEntity, const char *);
- int EN_dataI(pEntity, const char *);
-
-}
-
-#endif
-
-
diff --git a/debian/tmp/usr/include/MAdLib/MeshDataBaseParallelInterface.h b/debian/tmp/usr/include/MAdLib/MeshDataBaseParallelInterface.h
deleted file mode 100644
index 34ee6c2..0000000
--- a/debian/tmp/usr/include/MAdLib/MeshDataBaseParallelInterface.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: J.-F. Remacle, C. Dobrzynski, K. Hillewaert, G. Compere
-// -------------------------------------------------------------------
-
-#ifndef H_MESHDATABASEPARALLELINTEFACE
-#define H_MESHDATABASEPARALLELINTEFACE
-
-#include "MeshDataBaseInterface.h"
-#include "MeshDataBaseComm.h"
-#include "MeshDataBaseCommPeriodic.h"
-
-#include <vector>
-
-namespace MAd {
-
- class MDB_DataExchanger;
- class MDB_DataExchangerPeriodic;
-
- // -------------------------------------------------------------------
-
-#ifdef PARALLEL
- void M_writeParallel(pMesh, const char*, int version=2);
-#endif
-
- // -------------------------------------------------------------------
-
- /*! \brief Return true if on a parallel or periodic interface \ingroup internal */
- bool EN_isInterface(pEntity pv);
-
- /*! \brief Return true if on a parallel or periodic interface \ingroup parallel */
- bool V_isInterface(pVertex pv);
-
- /*! \brief Return true if pv is a (periodic) copy of vertex with tag id \ingroup parallel */
- bool V_corresponds(pVertex pv,int id);
-
- /*! \brief Return size of the list and list is an array containing
- proc numbers where pv exist except calling proc \ingroup parallel */
- int V_listInterface(pVertex pv, std::vector<int>* list);
-
- /*! \brief Return true if edge is //possibly// on a parallel or periodic interface \ingroup internal */
- bool E_isPotentialInterface(pMesh, pEdge);
-
- /*! \brief Return true if on a parallel or periodic interface \ingroup parallel */
- bool E_isInterface(pEdge);
-
- /*! \brief Return true if the edge corresponds either directly or periodically \ingroup parallel */
- bool E_corresponds(pEdge,int,int);
-
- /*! \brief Return true if on a parallel interface, distProc is
- (one of) the proc sharing the edge and distVt is a list
- of the pointers to the vertices on the distProc mesh \ingroup parallel */
- bool E_isInterface(pMesh, pEdge, int * distProc,
- std::vector<pVertex>* distVt);
-
- /*! \brief Return true if face is potentially on a parallel interface \ingroup internal */
- bool F_isPotentialInterface(pMesh, pFace);
-
- /*! \brief Return true if face is on a parallel interface \ingroup parallel */
- bool F_isInterface(pFace);
-
- /*! \brief Return true if on a parallel interface, distProc is the
- proc sharing the face and distVt is a list of the pointers
- to the vertices on the distant mesh \ingroup parallel */
- bool F_isInterface(pMesh, pFace, int * distProc,
- std::vector<pVertex>* distVt);
- /*! \brief Return true if on a parallel interface (always false) \ingroup parallel */
- bool R_isInterface(pRegion pr);
-
- // -------------------------------------------------------------------
-
- /*! \brief Fill the attached pointer containing the distant proc
- numbers and the distant node pointers \ingroup parallel */
- void V_createInfoInterface(pMesh mesh, pMeshDataId tagVertex);
-
- /*! \brief Fill the attached pointer containing the distant proc
- numbers and the distant edge pointers \ingroup parallel */
- void E_createInfoInterface(pMesh mesh, pMeshDataId tagEdge);
-
- /*! \brief Fill the attached pointer containing the distant proc
- numbers and the distant face pointers \ingroup parallel */
- void F_createInfoInterface(pMesh mesh, pMeshDataId tagFace);
-
-// void UpdateIDGlobal(pMesh mesh, int IdGlobal);
-
- // -------------------------------------------------------------------
-#ifdef PARALLEL
-
- // interface elt migration
- void Balance(pMesh mesh,MDB_DataExchanger &de);
- void Balance2(pMesh mesh,MDB_DataExchanger &de);
- void BalanceRandom(pMesh mesh,MDB_DataExchanger &de);
- int BalanceManifold(pMesh mesh,MDB_DataExchanger &de);
-
-#ifdef _HAVE_PARMETIS_
- // load balancing with metis
- void BalanceMetis(pMesh mesh,MDB_DataExchanger &de);
- void BalanceMetis2(pMesh mesh,MDB_DataExchanger &de);
-#endif
-
- // migration of elt tagged tagElt
- void loadBalancing(pMesh mesh,pMeshDataId tagElt, MDB_DataExchanger &de);
- void loadBalancing2(pMesh mesh,pMeshDataId tagElt, MDB_DataExchanger &de);
-#endif
-
- //Move periodic interfaces
- void BalancePeriodic(pMesh mesh,int dim,MDB_DataExchanger &de,
- MDB_DataExchangerPeriodic &deperiodic,std::vector<std::vector<int> >& transfo);
-
-// -------------------------------------------------------------------
-
-//migration of periodic elt
-void PeriodicInterfaceMigration(MAd::pMesh mesh,MAd::pMeshDataId tagElt,MAd::pMeshDataId tagMove,
- MAd::pMeshDataId tagTransfo, MDB_DataExchanger &de,
- MDB_DataExchangerPeriodic &deperiodic);
-
-
-void GroupPeriodicTetra(MAd::pMesh mesh, MDB_DataExchanger &de,
- MDB_DataExchangerPeriodic &deperiodic);
-
-
-// -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/MobileObject.h b/debian/tmp/usr/include/MAdLib/MobileObject.h
deleted file mode 100644
index e4da972..0000000
--- a/debian/tmp/usr/include/MAdLib/MobileObject.h
+++ /dev/null
@@ -1,166 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_MOBILEOBJECT
-#define _H_MOBILEOBJECT
-
-#include "MeshDataBaseInterface.h"
-#include "AdaptInterface.h"
-#include "LocalSizeField.h"
-
-#include <set>
-#include <list>
-#include <utility>
-#include <vector>
-#include <string>
-
-namespace MAd {
-
- class MAdElasticityOp;
- class MAdStringFieldEvaluator;
-
- // -------------------------------------------------------------------
- // GCTODO: rewrite it simpler
- struct vDisplacement
- {
- vDisplacement(const vDisplacement&);
- vDisplacement(pVertex, double[3]);
- void scale(double);
- pVertex pv;
- double dxyz[3]; // displacement
- };
-
- struct vDisplacementLess
- {
- bool operator() (const vDisplacement&, const vDisplacement&) const;
- };
-
- // ----------------------------------------------------------------------
- enum velocityFormulation {
- NOFORMULATION,
- PARSED,
- TRANSLATION,
- FULLRANDOM,
- RANDOM_TRANSLATION,
- ISOMETRY,
- ROTATION,
- SHEAR_YZ,
- SHEAR_ZX,
- SHEAR_XY,
- BENCH2,
- CROSS_EXPANSION_WITH_ROTATION
- };
-
- // ----------------------------------------------------------------------
- class mobileObject {
-
- public:
-
- mobileObject(const pMesh m,std::string _name="");
- mobileObject(const mobileObject & mob);
- ~mobileObject();
-
- void setName(std::string nm) {name = nm;}
- void setDxKinematics(std::vector<std::string> _Vstr);
- void setVKinematics(velocityFormulation type, double V[3],
- double C[3], std::vector<std::string> _Vstr);
- void addLocalSField(LocalSizeField* lsf);
- void addGEntity(int type, int tag);
- void reAddVertices();
-
- void computePrescribedDisplacement (double t, double dt);
-
- void describe (std::ostream& out=std::cout) const;
- const std::set<pVertex> getVertices() const {return vertices;}
- std::set<vDisplacement,vDisplacementLess> getPrescribedDisplacement () const {return prescribedDisplacement;}
- std::set<LocalSizeField* > getSizes() const { return sizes; }
-
- private:
-
- void addVerticesOnGEntity(int type, int tag);
- void clearDisplacement();
-
- void randomVelocity(double* V);
- void velocityFunction(double xyz[3], double t, double* V);
-
- private:
-
- const pMesh mesh;
- std::string name;
- std::list<std::pair<int,int> > geomEntities; // list of (type,tag)
- std::set<pVertex> vertices;
-
- // Parameters describing the kinematics
- std::string prescribeType;
- // for position ...
- MAdStringFieldEvaluator* DxParsed; // displacement relative to and evaluated on initial position
- // ... or velocity
- velocityFormulation velType;
- double Cxyz[3], Vxyz[3];
- MAdStringFieldEvaluator* VParsed; // velocity evaluated on current position
-
- // // Parameters describing the size around
- std::set<LocalSizeField* > sizes;
-
- std::set<vDisplacement,vDisplacementLess> prescribedDisplacement;
- };
-
- // ----------------------------------------------------------------------
- class mobileObjectSet {
-
- public:
-
- mobileObjectSet();
- ~mobileObjectSet();
-
- // larger possible motion by trials without volume nodes repositioning
- int partlyMove(vertexMoveOp& vMoveOp, double t, double dt, double * part);
-
- // move objects and reposition volume nodes. Needs the elastic operator.
- void setupElasticRepositioning(pMesh mesh, double t, double dt,double chi=-1,
- bool meshIsCavity=true, int cavityThickness=3);
-
- // Advances the relocation as far as possible
- // Returns:
- // - 0: no relocation possible
- // - 1: advanced but not to the final position
- // - 2: reached the full prescribed relocation
- int reposition(double * ratio);
-
- // empty or fill the set
- void clear();
- void insert(mobileObject*);
-
- std::set<vDisplacement,vDisplacementLess> getPrescribedDisplacement () const {return prescribedDisplacement;}
- std::set<mobileObject*> getObjects() const {return mobSet;}
-
- void describe(std::ostream& out=std::cout) const;
-
- private:
-
- // compute the objects displacement in a time interval
- void computePrescribedDisplacement (double t, double dt) ;
-
- private:
-
- std::set<mobileObject*> mobSet;
- std::set<vDisplacement,vDisplacementLess> prescribedDisplacement;
-
- MAdElasticityOp * elasticOp;
- };
-
- // ----------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/ModelInterface.h b/debian/tmp/usr/include/MAdLib/ModelInterface.h
deleted file mode 100644
index 5e1b0a4..0000000
--- a/debian/tmp/usr/include/MAdLib/ModelInterface.h
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Jean-Francois Remacle, Gaetan Compere
-// -------------------------------------------------------------------
-
-#ifndef _H_MODELINTERFACE
-#define _H_MODELINTERFACE
-
-#include <string>
-#include <list>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
-#ifdef _HAVE_GMSH_
- typedef class GmshGEntity MAdGEntity;
- typedef class GmshGEntityLessThan MAdGEntityLessThan;
- typedef class GmshGRegion MAdGRegion;
- typedef class GmshGFace MAdGFace;
- typedef class GmshGEdge MAdGEdge;
- typedef class GmshGVertex MAdGVertex;
-#else
- typedef class NullGEntity MAdGEntity;
- typedef class NullGEntityLessThan MAdGEntityLessThan;
- typedef class NullGRegion MAdGRegion;
- typedef class NullGFace MAdGFace;
- typedef class NullGEdge MAdGEdge;
- typedef class NullGVertex MAdGVertex;
-#endif
-
- typedef MAdGEntity * pGEntity;
- typedef MAdGRegion * pGRegion;
- typedef MAdGFace * pGFace;
- typedef MAdGEdge * pGEdge;
- typedef MAdGVertex * pGVertex;
-
- typedef class MAdModel * pGModel;
-
- typedef class GM_RegionIterator * GRIter;
- typedef class GM_FaceIterator * GFIter;
- typedef class GM_EdgeIterator * GEIter;
- typedef class GM_VertexIterator * GVIter;
-
- typedef class PGList * pPGList;
-
- // -------------------------------------------------------------------
-
- // --- Model operators ---
-
- // create an empty model
- void GM_create(pGModel * model, std::string name="");
-
- // delete the model
- void GM_delete(pGModel model);
-
- // read a model, guess file format from extension
- int GM_read(pGModel model, const std::string name);
-
- // read particular file formats
- int GM_readFromMSH(pGModel model, const std::string name);
- int GM_readFromGEO(pGModel model, const std::string name);
- int GM_readFromSTEP(pGModel model, const std::string name);
- int GM_readFromBREP(pGModel model, const std::string name);
- int GM_readFromIGES(pGModel model, const std::string name);
-
- // void GM_diagnostics(const pGModel model);
-
- // Returns true if physical tags are used in the model
- bool GM_physical(const pGModel model);
-
- // Find the entity with the given tag.
- // Create it if it doesn't exist.
- pGEntity GM_entityByTag(const pGModel model, int type, int tag);
- pGRegion GM_regionByTag(const pGModel model, int tag);
- pGFace GM_faceByTag (const pGModel model, int tag);
- pGEdge GM_edgeByTag (const pGModel model, int tag);
- pGVertex GM_vertexByTag(const pGModel model, int tag);
-
- int GM_numVertices(const pGModel);
- int GM_numEdges(const pGModel);
- int GM_numFaces(const pGModel);
- int GM_numRegions(const pGModel);
-
- // --- Iterators ---
-
- GRIter GM_regionIter(pGModel);
- GFIter GM_faceIter(pGModel);
- GEIter GM_edgeIter(pGModel);
- GVIter GM_vertexIter(pGModel);
-
- pGRegion GRIter_next(GRIter);
- pGFace GFIter_next(GFIter);
- pGEdge GEIter_next(GEIter);
- pGVertex GVIter_next(GVIter);
-
- void GRIter_delete(GRIter);
- void GFIter_delete(GFIter);
- void GEIter_delete(GEIter);
- void GVIter_delete(GVIter);
-
- void GRIter_reset(GRIter);
- void GFIter_reset(GFIter);
- void GEIter_reset(GEIter);
- void GVIter_reset(GVIter);
-
- // --- Entity operators ---
-
- int GEN_tag(const pGEntity);
- int GEN_type(const pGEntity);
- void GEN_setPhysical(pGEntity, int dim, int tag);
- int GEN_physTag(const pGEntity);
- int GEN_physDim(const pGEntity);
-
-#ifdef _HAVE_GMSH_
- std::list<pGEntity> GEN_closure(const pGEntity);
-
- // --- Region operators ---
-
- std::list<pGFace> GR_faces(const pGRegion);
-
- // --- Face operators ---
-
- int GF_numRegions(const pGFace);
- std::list<pGEdge> GF_edges(const pGFace);
- bool GF_getParams(const pGFace, const double[3], double[2]);
- void GF_closestPoint(const pGFace, const double[3],
- const double[2], double[3]);
- void GF_xyz(const pGFace, double, double, double[3]);
- double GF_curvatureDiv(const pGFace, const double[2],
- double cMaxBound);
- double GF_curvatures(const pGFace, const double[2],
- double dirMax[3], double dirMin[3],
- double *curvMax, double *curvMin,
- double cMaxBound);
- void GF_centerOnGeodesic(const pGFace face, double t,
- const double e[2][2], double c[2]);
-
- // --- Edge operators ---
-
- std::list<pGVertex> GE_vertices(const pGEdge);
- void GE_closestPoint(const pGEdge, const double[3], double[3]);
- void GE_xyz(const pGEdge, double, double[3]);
- void GE_reparamOnFace(const pGEdge, const pGFace,
- double, double[2], double uClose[2]=NULL);
- bool GE_isSeam(const pGEdge, const pGFace);
- double GE_curvature(const pGEdge, double, double);
-
- // --- Vertex operators ---
-
- std::list<pGEdge> GV_edges(const pGVertex);
-
- void GV_reparamOnFace(const pGVertex, const pGFace, double [2],
- double uClose[2]=NULL);
- void GV_reparamOnEdge(const pGVertex, const pGEdge, double *,
- double uClose=-1.);
- bool GV_isOnSeam(const pGVertex, const pGFace);
-#else
- void GF_centerOnGeodesic(const pGFace face, double t,
- const double e[2][2], double c[2]);
-#endif
-
- // --- pGList operators ---
-
- pPGList PGList_new();
- pPGList PGList_allocate();
- void PGList_delete (pPGList);
- void PGList_deallocate (pPGList);
- void PGList_clear (pPGList);
- pPGList PGList_appPGListUnique (pPGList, pPGList source);
- pPGList PGList_appUnique (pPGList, pGEntity);
- pPGList PGList_append (pPGList, pGEntity);
- int PGList_size (pPGList);
- pGEntity PGList_item (pPGList, int n);
- pGEntity PGList_next (pPGList, void ** restart);
- int PGList_inList (pPGList, pGEntity);
- void PGList_remItem (pPGList, pGEntity);
-
- // -------------------------------------------------------------------
-
-}
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/MshTags.h b/debian/tmp/usr/include/MAdLib/MshTags.h
deleted file mode 100644
index 8dd536b..0000000
--- a/debian/tmp/usr/include/MAdLib/MshTags.h
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Koen Hillewaert
-// -------------------------------------------------------------------
-
-#ifndef MSHTAGS__H
-#define MSHTAGS__H
-
-#include "MAdMessage.h"
-
-#include <string>
-#include <sstream>
-
-using namespace MAd;
-
-// Element types in .msh file format
-#define MSH_LIN_2 1
-#define MSH_TRI_3 2
-#define MSH_QUA_4 3
-#define MSH_TET_4 4
-#define MSH_HEX_8 5
-#define MSH_PRI_6 6
-#define MSH_PYR_5 7
-#define MSH_LIN_3 8
-#define MSH_TRI_6 9
-#define MSH_QUA_9 10
-#define MSH_TET_10 11
-#define MSH_HEX_27 12
-#define MSH_PRI_18 13
-#define MSH_PYR_14 14
-#define MSH_PNT 15
-#define MSH_QUA_8 16
-#define MSH_HEX_20 17
-#define MSH_PRI_15 18
-#define MSH_PYR_13 19
-#define MSH_TRI_9 20
-#define MSH_TRI_10 21
-#define MSH_TRI_12 22
-#define MSH_TRI_15 23
-#define MSH_TRI_15I 24
-#define MSH_TRI_21 25
-#define MSH_LIN_4 26
-#define MSH_LIN_5 27
-#define MSH_LIN_6 28
-#define MSH_TET_20 29
-#define MSH_TET_35 30
-#define MSH_TET_56 31
-#define MSH_TET_34 32
-#define MSH_MAX_ELEMENT_NODES 56
-
-inline
-int getNumVerticesForElementTypeMSH(int type)
-{
- switch (type) {
- case MSH_PNT : return 1;
- case MSH_LIN_2 : return 2;
- case MSH_LIN_3 : return 2 + 1;
- case MSH_LIN_4 : return 2 + 2;
- case MSH_LIN_5 : return 2 + 3;
- case MSH_LIN_6 : return 2 + 4;
- case MSH_TRI_3 : return 3;
- case MSH_TRI_6 : return 3 + 3;
- case MSH_TRI_9 : return 3 + 6;
- case MSH_TRI_10 : return 3 + 6 + 1;
- case MSH_TRI_12 : return 3 + 9;
- case MSH_TRI_15 : return 3 + 9 + 3;
- case MSH_TRI_15I : return 3 + 12;
- case MSH_TRI_21 : return 3 + 12 + 6;
- case MSH_QUA_4 : return 4;
- case MSH_QUA_8 : return 4 + 4;
- case MSH_QUA_9 : return 4 + 4 + 1;
- case MSH_TET_4 : return 4;
- case MSH_TET_10 : return 4 + 6;
- case MSH_HEX_8 : return 8;
- case MSH_HEX_20 : return 8 + 12;
- case MSH_HEX_27 : return 8 + 12 + 6 + 1;
- case MSH_PRI_6 : return 6;
- case MSH_PRI_15 : return 6 + 9;
- case MSH_PRI_18 : return 6 + 9 + 3;
- case MSH_PYR_5 : return 5;
- case MSH_PYR_13 : return 5 + 8;
- case MSH_PYR_14 : return 5 + 8 + 1;
- case MSH_TET_20 : return 20;
- case MSH_TET_35 : return 35;
- case MSH_TET_34 : return 34;
- case MSH_TET_56 : return 56;
- default:
- MAdMsgSgl::instance().error(__LINE__,__FILE__,
- "Unknown type of element %d", type);
- }
- return 0;
-}
-
-inline
-int getDimForElementTypeMSH(int type)
-{
- switch (type) {
- case MSH_PNT : return 0;
- case MSH_LIN_2 :
- case MSH_LIN_3 :
- case MSH_LIN_4 :
- case MSH_LIN_5 :
- case MSH_LIN_6 : return 1;
- case MSH_TRI_3 :
- case MSH_TRI_6 :
- case MSH_TRI_9 :
- case MSH_TRI_10 :
- case MSH_TRI_12 :
- case MSH_TRI_15 :
- case MSH_TRI_15I :
- case MSH_TRI_21 :
- case MSH_QUA_4 :
- case MSH_QUA_8 :
- case MSH_QUA_9 : return 2;
- case MSH_TET_4 :
- case MSH_TET_10 :
- case MSH_HEX_8 :
- case MSH_HEX_20 :
- case MSH_HEX_27 :
- case MSH_PRI_6 :
- case MSH_PRI_15 :
- case MSH_PRI_18 :
- case MSH_PYR_5 :
- case MSH_PYR_13 :
- case MSH_PYR_14 :
- case MSH_TET_20 :
- case MSH_TET_35 :
- case MSH_TET_34 :
- case MSH_TET_56 : return 3;
- default:
- MAdMsgSgl::instance().error(__LINE__,__FILE__,
- "Unknown type of element %d", type);
- }
- return -1;
-}
-
-inline
-std::string getElementName(int type) {
-
- std::string name;
-
- switch (type) {
- case MSH_PNT : name = "Point"; break;
- case MSH_LIN_2 : name = "Linear edge"; break;
- case MSH_LIN_3 : name = "Quadratic edge"; break;
- case MSH_LIN_4 : name = "Cubic edge"; break;
- case MSH_LIN_5 : name = "Quartic edge"; break;
- case MSH_LIN_6 : name = "Pentic edge"; break;
- case MSH_TRI_3 : name = "Linear triangle"; break;
- case MSH_TRI_6 : name = "Quadratic triangle"; break;
- case MSH_TRI_9 : name = "Cubic serendipity triangle"; break;
- case MSH_TRI_10 : name = "Cubic triangle"; break;
- case MSH_TRI_12 : name = "Quartic serendipity triangle"; break;
- case MSH_TRI_15 : name = "Quartic triangle"; break;
- case MSH_TRI_15I : name = "Pentic serendipity triangle"; break;
- case MSH_TRI_21 : name = "Pentic triangle"; break;
- case MSH_QUA_4 : name = "Bilinear Quadrangle"; break;
- case MSH_QUA_8 : name = "Quadratic serendipity quadrangle"; break;
- case MSH_QUA_9 : name = "Quadratic quadrangle"; break;
- case MSH_TET_4 : name = "Linear tetrahedron"; break;
- case MSH_TET_10 : name = "Quadratic tetrahedron"; break;
- case MSH_HEX_8 : name = "Trilinear hexahedron"; break;
- case MSH_HEX_20 : name = "Quadratic edge serendipity hexahedron"; break;
- case MSH_HEX_27 : name = "Quadratic serendipity hexahedron"; break;
- case MSH_PRI_6 : name = "Linear prism"; break;
- case MSH_PRI_15 : name = "Quadratic edge serendipity prism"; break;
- case MSH_PRI_18 : name = "Quadratic serendipity prism"; break;
- case MSH_PYR_5 : name = "Linear pyramid"; break;
- case MSH_PYR_13 : name = "Quadratic edge serendipity pyramid"; break;
- case MSH_PYR_14 : name = "Quadratic serendipty pyramid"; break;
- case MSH_TET_20 : name = "Cubic tetrahedron";break;
- case MSH_TET_35 : name = "Quartic tetrahedron";break;
- case MSH_TET_34 : name = "Quartic serendipity tetrahedron";break;
- case MSH_TET_56 : name = "Pentic tetrahedron";break;
- default:
- std::stringstream ss; break;
- ss << "Unknown type of element (tag " << type << ")"; break;
- name = ss.str();
- }
- return name;
-}
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/PWLinearSField.h b/debian/tmp/usr/include/MAdLib/PWLinearSField.h
deleted file mode 100644
index d7650cd..0000000
--- a/debian/tmp/usr/include/MAdLib/PWLinearSField.h
+++ /dev/null
@@ -1,121 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_PWLINEARSFIELD
-#define _H_PWLINEARSFIELD
-
-#include "DiscreteSF.h"
-#ifdef PARALLEL
-#include "MeshDataBaseComm.h"
-#endif
-
-#include <set>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- class PWLSField : public DiscreteSF
- {
- public:
-
- PWLSField(pMesh, std::string name="");
- ~PWLSField();
-
- DiscreteSFType discretization() const { return VERTEX_P1_DSFTYPE; }
-
- // delete sizes
- void cleanUp();
-
- // Intersect with another size field
- void intersect(const pSField);
-
- // smooth the size field
- void smooth(double);
-
- // set a size at all vertices
- void setCurrentSize();
- void setCurvatureSize(bool aniso,
- double alpha=2., // prescribe 2*PI*alpha edges around a circle
- double hMin=1.e-4); // minimal size
- void setAllVSizes(pMSize);
- void setAllVSizes(double[3][3], double[3]);
- void setAllVSizes(double);
- void scale(double);
-
- // get the size at a location (allocate space!)
- pMSize getSize(const pVertex) const;
- pMSize getSizeOnEntity(const pEntity, const double[3]) const;
-
- // get the size at a vertex (do not allocate space)
- const pMSize findSize(const pVertex) const;
- pMSize findSize(const pVertex);
-
- // edge length (squared)
- double SF_VV_lengthSq(const pVertex, const pVertex) const;
- double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const;
-
- // face area (squared)
- double SF_F_areaSq(const pFace) const;
- double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const;
-
- // region volume
- double SF_R_volume(const pRegion) const;
- double SF_XYZ_volume(const double[4][3], const pMSize) const;
-
- // center and its associated size
- double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const;
- double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const;
-
- protected:
-
- pMSize getSizeOnEdge(const pEdge, const double[3]) const;
- pMSize getSizeOnEdgeParam(const pEdge, const double) const;
- pMSize getSizeOnFace(const pFace, const double[3]) const;
- pMSize getSizeOnFaceParam(const pFace, const double[2]) const;
- pMSize getSizeOnRegion(const pRegion, const double[3]) const;
- pMSize getSizeOnRegionParam(const pRegion, const double[3]) const;
-
- void smoothOnEdge(const pEdge, double, std::set<pEdge>*);
- };
-
- // -------------------------------------------------------------------
-#ifdef PARALLEL
- class PWLSFieldDE : public MDB_DataExchanger
- {
- public :
-
- PWLSField *field;
-
- PWLSFieldDE(PWLSField *f);
- virtual ~PWLSFieldDE();
-
- virtual void * sendData (pEntity pe, // in
- int iProcDest, // in
- int &_size );
-
- virtual void receiveData (pEntity pe, //in
- int iProcSender, //in
- void *buf );
-
- virtual void deleteExternalData(pEntity pe) const;
- };
-#endif
-
-}
-
-// -------------------------------------------------------------------
-
-#endif
diff --git a/debian/tmp/usr/include/MAdLib/SizeField.h b/debian/tmp/usr/include/MAdLib/SizeField.h
deleted file mode 100644
index d5596b1..0000000
--- a/debian/tmp/usr/include/MAdLib/SizeField.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#include "SizeFieldBase.h"
-#include "DiscreteSF.h"
-#include "PWLinearSField.h"
-#include "LocalSizeField.h"
-#include "AnalyticalSField.h"
-#include "BackgroundSF.h"
diff --git a/debian/tmp/usr/include/MAdLib/SizeFieldBase.h b/debian/tmp/usr/include/MAdLib/SizeFieldBase.h
deleted file mode 100644
index c65c9fd..0000000
--- a/debian/tmp/usr/include/MAdLib/SizeFieldBase.h
+++ /dev/null
@@ -1,101 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-//
-// Authors: Gaetan Compere, Jean-Francois Remacle
-// -------------------------------------------------------------------
-
-#ifndef _H_SIZEFIELDBASE
-#define _H_SIZEFIELDBASE
-
-#include "MeshDataBaseInterface.h"
-
-#include <string>
-
-namespace MAd {
-
- // -------------------------------------------------------------------
- enum sFieldType {
- UNKNOWNSFIELDTYPE,
- NULLSFIELD,
- DISCRETESFIELD,
- ANALYTICALSFIELD,
- LOCALSFIELD,
- BACKGROUNDSFIELD
- };
-
- // -------------------------------------------------------------------
- typedef class SizeFieldBase * pSField;
- typedef class MeshSizeBase * pMSize;
-
- // -------------------------------------------------------------------
- class SizeFieldBase
- {
- public:
-
- SizeFieldBase(std::string _name=""): name(_name) {};
- virtual ~SizeFieldBase() {};
-
- public:
-
- virtual sFieldType getType() const = 0 ;
- std::string getName() const { return name; }
-
- virtual void scale(double) = 0;
-
- public:
-
- // edge length (squared)
- virtual double SF_E_lengthSq(const pEdge) const;
- virtual double SF_VV_lengthSq(const pVertex,const pVertex) const = 0;
- virtual double SF_XYZ_lengthSq(const double[3], const double[3],
- const pMSize, const pMSize=NULL) const = 0;
-
- // face area (squared)
- virtual double SF_F_areaSq(const pFace) const = 0;
- virtual double SF_XYZ_areaSq(const double[3][3], const pMSize,
- const double[3]) const = 0;
-
- // region volume
- virtual double SF_R_volume(const pRegion) const = 0;
- virtual double SF_XYZ_volume(const double[4][3], const pMSize) const = 0;
-
- // center and its associated size
- virtual double SF_E_center(const pEdge, double[3], double * reducSq, pMSize *) const = 0;
- virtual double SF_VV_center(const pVertex, const pVertex,
- double[3], double * reducSq, pMSize *) const = 0;
- virtual double SF_XYZ_center(const double[2][3], const pMSize[2],
- double[3], double * reducSq, pMSize *) const;
-
- public:
-
- // get the size at a location
- // --- Memory is allocated ! ---
- virtual pMSize getSize(const pVertex) const = 0;
- virtual pMSize getSizeOnEntity(const pEntity,
- const double[3]) const = 0;
-
- public:
-
- // visualisation of the isotropic size in a .pos file
- void printPosIsotropic (const pMesh mesh, const std::string name);
- // visualisation of the anisotropic size in a .pos file
- void printPosAnisotropic(const pMesh mesh, const std::string baseName);
-
- private:
-
- std::string name;
-
- };
-
-}
-
-// -------------------------------------------------------------------
-
-#endif
diff --git a/debian/tmp/usr/lib/libMAdLib.a b/debian/tmp/usr/lib/libMAdLib.a
deleted file mode 100644
index 0f3d62a..0000000
Binary files a/debian/tmp/usr/lib/libMAdLib.a and /dev/null differ
diff --git a/debian/tmp/usr/lib/libMAdLib.la b/debian/tmp/usr/lib/libMAdLib.la
deleted file mode 100755
index 82c52bc..0000000
--- a/debian/tmp/usr/lib/libMAdLib.la
+++ /dev/null
@@ -1,41 +0,0 @@
-# libMAdLib.la - a libtool library file
-# Generated by ltmain.sh (GNU libtool) 2.2.6 Debian-2.2.6a-1ubuntu1
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='libMAdLib.so.0'
-
-# Names of this library.
-library_names='libMAdLib.so.0.0.0 libMAdLib.so.0 libMAdLib.so'
-
-# The name of the static archive.
-old_library='libMAdLib.a'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags=''
-
-# Libraries that this one depends upon.
-dependency_libs=' -lm'
-
-# Names of additional weak libraries provided by this library
-weak_library_names=''
-
-# Version information for libMAdLib.
-current=0
-age=0
-revision=0
-
-# Is this an already installed library?
-installed=yes
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=no
-
-# Files to dlopen/dlpreopen
-dlopen=''
-dlpreopen=''
-
-# Directory that this library needs to be installed in:
-libdir='/usr/lib'
diff --git a/debian/tmp/usr/lib/libMAdLib.so b/debian/tmp/usr/lib/libMAdLib.so
deleted file mode 120000
index c88e777..0000000
--- a/debian/tmp/usr/lib/libMAdLib.so
+++ /dev/null
@@ -1 +0,0 @@
-libMAdLib.so.0.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libMAdLib.so.0 b/debian/tmp/usr/lib/libMAdLib.so.0
deleted file mode 120000
index c88e777..0000000
--- a/debian/tmp/usr/lib/libMAdLib.so.0
+++ /dev/null
@@ -1 +0,0 @@
-libMAdLib.so.0.0.0
\ No newline at end of file
diff --git a/debian/tmp/usr/lib/libMAdLib.so.0.0.0 b/debian/tmp/usr/lib/libMAdLib.so.0.0.0
deleted file mode 100755
index ea22e5b..0000000
Binary files a/debian/tmp/usr/lib/libMAdLib.so.0.0.0 and /dev/null differ
diff --git a/debian/tmp/usr/share/doc/madlib/Copyright.txt b/debian/tmp/usr/share/doc/madlib/Copyright.txt
deleted file mode 100644
index 9ffb9ac..0000000
--- a/debian/tmp/usr/share/doc/madlib/Copyright.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-MAdLib: Mesh Adaptation Library
-Version: 1.0
-
-Copyright (C) 2008-2009 Universite catholique de Louvain, Belgium,
-<http://www.uclouvain.be>. All Rights Reserved.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with this program (License.txt). If not, see <http://www.gnu.org/licenses/>.
-
-Disclaimer
-----------
-The Universite catholique de Louvain and the authors make no
-representations about the suitability or fitness of this software
-for any purpose. It is provided "as is" without express or implied
-warranty.
-
-Report all bugs and problems to <contrib at madlib.be>
-Web site: http://www.madlib.be
-
-Authors
--------
-
-See Credits.txt
diff --git a/debian/tmp/usr/share/doc/madlib/Credits.txt b/debian/tmp/usr/share/doc/madlib/Credits.txt
deleted file mode 100644
index c9ec4c6..0000000
--- a/debian/tmp/usr/share/doc/madlib/Credits.txt
+++ /dev/null
@@ -1,37 +0,0 @@
- MAdLib is copyright (C) 2008-2009
-
- Universite catholique de Louvain
- <http://www.uclouvain.be>
-
-The main authors are Gaetan Compere and Jean-Francois Remacle.
-
-Gaetan Compere
-Departement of Civil Engineering
-Universite catholique de Louvain
-Avenue Georges Lemaitre 4, 1348 Louvain-la-Neuve, Belgium
-gaetan.compere at uclouvain.be
-
-Jean-Francois Remacle
-Departement of Civil Engineering
-Universite catholique de Louvain
-Avenue Georges Lemaitre 4, 1348 Louvain-la-Neuve, Belgium
-jean-francois.remacle at uclouvain.be
-
-Major code contributions have been provided by Cecile Dobrzynski
-(parallel adaptation and periodic meshes) and Koen Hillewaert
-(high order elements and a lot of testing and bug reports/fixes).
-
-Other code contributors include: Arnaud Francois (edge swap operator),
-Olivier Pierard (DESC, edge split and face collapse operators),
-Richard Comblen (PETSc interface), Josue Barboza (parallel adaptation
-testing and debugging), Jonathan Lambrechts (bug fixes),
-Sebastien Blaise (bug fixes) and Paul-Emile Bernard (bug fixes).
-
-This version of MAdLib may contain code (in the Contrib/gmm
-subdirectory) copyright (C) 2002-2008 Yves Renard: check the
-configuration options.
-
-This version of MAdLib may contain code (in the Contrib/mathex
-subdirectory) copyright (C) 2000-2003 Sadao Massago: check the
-configuration options.
-
diff --git a/debian/tmp/usr/share/doc/madlib/License.txt b/debian/tmp/usr/share/doc/madlib/License.txt
deleted file mode 100644
index 8da168b..0000000
--- a/debian/tmp/usr/share/doc/madlib/License.txt
+++ /dev/null
@@ -1,850 +0,0 @@
-This file contains:
- - the terms of the GNU Lesser General Public License Version 3,
- - the terms of the GNU General Public License Version 3.
-
-//-----------------------------------------------------------------------
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
-
-
-
-//-----------------------------------------------------------------------
-
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/debian/tmp/usr/share/doc/madlib/MAdLibInterface.cpp b/debian/tmp/usr/share/doc/madlib/MAdLibInterface.cpp
deleted file mode 100644
index aa7764b..0000000
--- a/debian/tmp/usr/share/doc/madlib/MAdLibInterface.cpp
+++ /dev/null
@@ -1,444 +0,0 @@
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-// -------------------------------------------------------------------
-// Author: Gaetan Compere
-//
-// This file provides an example of an interface to MAdLib as it
-// could be implemented in a physical solver requiring mesh adaptivity.
-// -------------------------------------------------------------------
-
-#include "MAdLibInterface.h"
-using namespace MAd;
-
-// -------------------------------------------------------------------
-// This is an example of a callback function that takes care of a
-// nodal solution when local mesh modifications are applied.
-// This function will be registered by 'MAdLibInterface' and will
-// then be called during every local mesh modification.
-// --------------------------------------------------------------------
-void Solver_CBFunction (pPList before, pPList after, void *data,
- operationType type, pEntity ppp) {
-
- // Data can point to the object of type 'MAdLibInterface' for instance,
- // depending on what pointer was given when registering the callback function
- // It is not used in this example
- MAdLibInterface * mi = static_cast<MAdLibInterface *>(data);
-
- // The data id used to identify the data attached to mesh entities
- pMeshDataId dataId = MD_lookupMeshDataId("SolutionTag");
-
- // Do the right manipulation on data according to the mesh modification
- // that is currently applied
- switch (type) {
- case MAd_ESPLIT:
- // Edge split case:
- // - 'before' contains the split edge (not deleted yet)
- // - 'after' contains the two new edges
- // - 'ppp' contains the new vertex
- {
- // find the edge to be deleted
- void * temp = NULL;
- pEdge pE = (pEdge) PList_next(before,&temp);
-
- // get coordinates and data at old nodes
- double data0 = 0.;
- pVertex pV0 = E_vertex((pEdge)pE, 0);
- int gotit0 = EN_getDataDbl((pEntity)pV0, dataId, &data0);
-
- double data1 = 0.;
- pVertex pV1 = E_vertex((pEdge)pE, 1);
- int gotit1 = EN_getDataDbl((pEntity)pV1, dataId, &data1);
-
- if ( !gotit0 || !gotit1) {
- printf("Error: one of the nodes has no data attached to\n");
- throw;
- }
-
- // interpolate the data at the new vertex (here linear interpolation)
- double t = E_linearParams(pE,(pVertex)ppp);
- double newData = (1.-t) * data0 + t * data1;
-
- // attach this data to the new vertex
- EN_attachDataDbl(ppp, dataId, newData);
- }
- break;
- case MAd_ECOLLAPSE:
- // Edge collapse case:
- // - 'before' contains the regions (3D) or faces (2D) of the cavity
- // before the edge collapse (not deleted yet)
- // - 'after' contains the regions (3D) or faces (2D) of the cavity
- // after the edge collapse
- // - 'ppp' contains the vertex to be deleted (not deleted yet)
- {
- // remove the data on deleted vertex
- EN_deleteData(ppp, dataId);
- }
- break;
- case MAd_FSWAP:
- // Face swap case:
- // - 'before' contains the regions of the cavity before the face swap (not deleted yet)
- // - 'after' contains the regions of the cavity after the face swap
- // - 'ppp' contains the swapped face (not deleted yet)
- {
- // nothing to be done for nodal solutions
- }
- break;
- case MAd_ESWAP:
- // Edge swap case:
- // - 'before' contains the regions (3D) or faces (2D) of the cavity
- // before the edge swap (not deleted yet)
- // - 'after' contains the regions (3D) or faces (2D) of the cavity
- // after the edge swap
- // - 'ppp' contains the swapped edge (not deleted yet)
- {
- // nothing to be done for nodal solutions
- }
- break;
- default:
- printf("Error: no callback function should be called with this operation: %d",type);
- throw;
- }
-};
-
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-MAdLibInterface::MAdLibInterface()
-{}
-
-//-----------------------------------------------------------------------------
-MAdLibInterface::~MAdLibInterface()
-{}
-
-//-----------------------------------------------------------------------------
-// Main routine for adaptation
-void MAdLibInterface::adaptMesh()
-{
- //-----------------------------------------------------
- // Step 1: Prepare for adaptation
- //-----------------------------------------------------
-
- // 1. Delete mesh/solution dependent data in the solver
- solver->deleteData();
-
- // 2.A. Build the MAdLib geometrical model.
- pGModel MAdModel = NULL;
- GM_create(&MAdModel,"theModel");
- exportToMAdModel(solver->getModel(), MAdModel);
-
- // 2.B. Build the MAdLib mesh.
- pMesh MAdMesh = M_new(MAdModel);
- exportToMAdMesh(solver->getMesh(), MAdMesh);
-
- // 3. Transfer solution to the MAdLib mesh as an attached data
- attachSolutionToMesh(MAdMesh);
- solver->deallocateSolution();
-
- // 4. Delete the solver mesh.
- solver->deleteMesh();
-
- // 5. Build the size field used in adaptation
- PWLSField * sizeField = new PWLSField(MAdMesh);
- buildSizeField(sizeField);
-
- //-----------------------------------------------------
- // Step 2: Run the adaptation
- //-----------------------------------------------------
-
- // 6.A. Build the adaptation tool
- MeshAdapter * adapter = new MeshAdapter(MAdMesh,sizeField);
-
- // 6.B. Register the callback function(s) of the solver
- adapter->addCallback(Solver_CBFunction,(void*)this);
-
- // 6.C. Edit the adaptation parameters if necessary
- adapter->setEdgeLenSqBounds( 1.0/3.0, 3.0 );
- adapter->setNoSwapQuality( 0.1 );
- adapter->setSliverQuality( 0.02 );
- adapter->setSliverPermissionInESplit( true, 10. );
- adapter->setSliverPermissionInECollapse( true, 0.1 );
-
- // 6.D. Run the adaptation procedure
- adapter->run();
-
- // 6.E. Optional output
- adapter->printStatistics(std::cout);
- M_writeMsh(MAdMesh,"adapted_mesh.msh",2);
-
- // 6.F. Clean the adaptation objects
- delete adapter;
- delete sizeField;
-
- //-----------------------------------------------------
- // Step 3: Rebuild solver data and mesh
- //-----------------------------------------------------
-
- // 7. Rebuild the solver mesh
- importFromMAdModel(MAdModel, solver->getModel());
- importFromMAdMesh(MAdMesh, solver->getMesh());
-
- // 8. Get the solution from the MAdLib mesh
- solver->allocateSolution();
- getSolutionFromMesh(MAdMesh);
-
- // 9. Delete MAdLib mesh
- delete MAdMesh;
- delete MAdModel;
-
- // 10. Build mesh/solution dependent data in the solver
- solver->allocateAndComputeData();
-}
-
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Converts a MAdLib mesh into a 'Solver_mesh'
-void MAdLibInterface::importFromMAdMesh(const MAd::pMesh MAdMesh,
- Solver_mesh * solverMesh)
-{
- MAdToSolverIds.clear();
- SolverToMAdIds.clear();
-
- // --- Mesh dimension ---
- int dim = M_dim(MAdMesh);
-
- // --- Mesh size ---
- int numVertices = M_numVertices(MAdMesh);
- int numElements;
- if ( dim == 3 ) numElements = M_numRegions(MAdMesh);
- if ( dim == 2 ) numElements = M_numFaces(MAdMesh);
-
- solverMesh->allocate(numVertices,numElements);
-
- // --- Build vertices ---
- int solver_Id = 0; // will allow consecutive ids for the solver mesh
- VIter vit = M_vertexIter(MAdMesh);
- while (pVertex pv = VIter_next(vit))
- {
- // get MAdLib mesh id
- int MAd_Id = EN_id((pEntity)pv);
-
- // get coordinates
- double xyz[3];
- V_coord(pv,xyz);
-
- // add node in solver mesh
- solverMesh->addNode(solver_Id,xyz[0],xyz[1],xyz[2]);
-
- // fill in id's tables
- MAdToSolverIds[MAd_Id] = solver_Id;
- SolverToMAdIds[solver_Id] = MAd_Id;
-
- solver_Id++;
- }
- VIter_delete(vit);
-
- // --- Build elements ---
- int solver_elem_Id = 0;
- if (dim==3) {
- RIter rit = M_regionIter(MAdMesh);
- while (pRegion pr = RIter_next(rit))
- {
- // get list of node id's in the solver mesh
- int nodes[4];
- pPList rVerts = R_vertices(pr);
- void * temp = NULL;
- int iN = 0;
- while ( pVertex pv = (pVertex)PList_next(rVerts,&temp) )
- {
- int MAd_Id = EN_id((pEntity)pv);
- nodes[iN++] = MAdToSolverIds[MAd_Id];
- }
- PList_delete(rVerts);
-
- // add the element to the solver mesh
- solverMesh->addElement(solver_elem_Id, nodes);
- solver_elem_Id++;
- }
- RIter_delete(rit);
- }
- else if (dim==2) {
- FIter fit = M_faceIter(MAdMesh);
- while (pFace pf = FIter_next(fit))
- {
- // get list of node id's in the solver mesh
- int nodes[3];
- pPList fVerts = F_vertices(pf,1);
- void * temp = NULL;
- int iN = 0;
- while ( pVertex pv = (pVertex)PList_next(fVerts,&temp) )
- {
- int MAd_Id = EN_id((pEntity)pv);
- nodes[iN++] = MAdToSolverIds[MAd_Id];
- }
- PList_delete(fVerts);
-
- // add the element to the solver mesh
- solverMesh->addElement(solver_elem_Id, nodes);
- solver_elem_Id++;
- }
- FIter_delete(fit);
- }
-}
-
-//-----------------------------------------------------------------------------
-// Converts a 'Solver_mesh' into a MAdLib mesh
-void MAdLibInterface::exportToMAdMesh(const Solver_mesh * solverMesh,
- MAd::pMesh MAdMesh)
-{
- // --- Build the vertices ---
- MAdToSolverIds.clear();
- SolverToMAdIds.clear();
- int nVerts = solverMesh->nVertices();
- const double ** xyz = solverMesh->getCoordinates();
- for (int iV=0; iV < nVerts; iV++) {
- MAdMesh->add_point(iV+1,xyz[iV][0],xyz[iV][1],xyz[iV][2]);
- SolverToMAdIds[iV] = iV+1;
- MAdToSolverIds[iV+1] = iV;
- }
-
- // --- Build the elements ---
- int dim = solverMesh->getDim();
- int nElems = solverMesh->nElements();
- if (dim==3)
- {
- const int ** elements = solverMesh->getElements();
- const int * elemGeoTags = solverMesh->getElemGeoTags();
- for (int iC=0; iC < nElems; iC++) {
- pGRegion geom = GM_regionByTag(MAdMesh->model,
- elemGeoTags[iC]);
- MAdMesh->add_tet(elements[iC][0], elements[iC][1],
- elements[iC][2], elements[iC][3],
- (pGEntity)geom);
- }
- }
- else if (dim==2)
- {
- const int ** elements = solverMesh->getElements();
- const int * elemGeoTags = solverMesh->getElemGeoTags();
- for (int iC=0; iC < nElems; iC++) {
- pGFace geom = GM_faceByTag(MAdMesh->model,
- elemGeoTags[iC]);
- MAdMesh->add_triangle(elements[iC][0], elements[iC][1],
- elements[iC][2], (pGEntity)geom);
- }
- }
-
- /*
- Here, the entities of the MAdLib mesh sould be classified
- on their corresponding geometrical entities, like for boundary
- faces in 3D for instance. The implementation of this step
- is highly dependent on the implementation of Solver_mesh and
- Solver_model so it is up to the reader to add the right
- instructions here.
-
- Note that the geometrical entities have been created in the
- execution of 'exportToMAdModel'. Any mesh entity can be
- associated to a geometrical entity using the EN_setWhatIn(...)
- function of the MAdLib mesh interface.
-
- Note that all the steps involving geometrical entities can be
- replaced by appropriate constraints on boundary mesh entities
- (see AdaptInterface.h) but no mesh modification will therefore
- be applied on the boundaries, which can be problematic for some
- computations.
- */
-
- MAdMesh->classify_unclassified_entities();
- MAdMesh->destroyStandAloneEntities();
-}
-
-//-----------------------------------------------------------------------------
-// Create in MAdModel all geometrical entities listed in solverModel.
-void MAdLibInterface::exportToMAdModel(const Solver_model * solverModel,
- MAd::pGModel MAdModel)
-{
- std::set<std::pair<int,int> > geometry = solverModel->getAllGeoEntities();
- std::set<std::pair<int,int> >::const_iterator geoIter = geometry.begin();
- for (; geoIter != geometry.end(); geoIter++) {
- int dim = (*geoIter).first;
- int id = (*geoIter).second;
- GM_entityByTag(MAdModel,dim,id);
- }
-}
-
-//-----------------------------------------------------------------------------
-// Build a field of prescribed edges lengths on the domain.
-void MAdLibInterface::buildSizeField(MAd::PWLSField * sizeField)
-{
- // First option: keep actual edges lengths
- sizeField->setCurrentSize();
-
- // Second option: compute it from solver functions
- VIter vit = M_vertexIter(sizeField->getMesh());
- while (pVertex pv = VIter_next(vit))
- {
- // get solver point id
- int MAd_Id = EN_id((pEntity)pv);
- int solver_Id = MAdToSolverIds[MAd_Id];
-
- // get the edge length prescribed by the solver
- double length = solver->prescribedEdgeLength(solver_Id);
-
- // fill in the size field
- sizeField->setSize((pEntity)pv, length);
- }
- VIter_delete(vit);
-}
-
-//-----------------------------------------------------------------------------
-void MAdLibInterface::attachSolutionToMesh(MAd::pMesh MAdMesh)
-{
- // Get the solution database. Here we assume that it is a nodal solution.
- const Solver_solution * solution = solver->getSolution();
-
- // The data id used to identify the data attached to mesh entities
- pMeshDataId dataId = MD_lookupMeshDataId("SolutionTag");
-
- VIter vit = M_vertexIter(MAdMesh);
- while (pVertex pv = VIter_next(vit))
- {
- // get solver point id
- int MAd_Id = EN_id((pEntity)pv);
- int solver_Id = MAdToSolverIds[MAd_Id];
-
- double data = (*solution)[solver_Id];
-
- // attach data to the mesh vertex
- EN_attachDataDbl((pEntity)pv,dataId,data);
- }
- VIter_delete(vit);
-}
-
-//-----------------------------------------------------------------------------
-void MAdLibInterface::getSolutionFromMesh(MAd::pMesh MAdMesh)
-{
- // Get the solution database. Here we assume that it is a nodal solution.
- Solver_solution * solution = solver->getSolution();
-
- // The data id used to identify the data attached to mesh entities
- pMeshDataId dataId = MD_lookupMeshDataId("SolutionTag");
-
- VIter vit = M_vertexIter(MAdMesh);
- while (pVertex pv = VIter_next(vit))
- {
- // get solver point id
- pPoint pp = V_point(pv);
- int MAdId = P_id(pp);
- int solver_Id = MAdToSolverIds[MAdId];
-
- // get attached data and delete it
- double data;
- EN_getDataDbl((pEntity)pv,dataId,&data);
- EN_deleteData((pEntity)pv,dataId);
-
- *(*solution)[solver_Id] = data;
- }
- VIter_delete(vit);
-}
-
-//-----------------------------------------------------------------------------
diff --git a/debian/tmp/usr/share/doc/madlib/MAdLibInterface.h b/debian/tmp/usr/share/doc/madlib/MAdLibInterface.h
deleted file mode 100644
index c80f187..0000000
--- a/debian/tmp/usr/share/doc/madlib/MAdLibInterface.h
+++ /dev/null
@@ -1,139 +0,0 @@
-// -*- C++ -*-
-// -------------------------------------------------------------------
-// MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-//
-// See the Copyright.txt and License.txt files for license information.
-// You should have received a copy of these files along with MAdLib.
-// If not, see <http://www.madlib.be/license/>
-//
-// Please report all bugs and problems to <contrib at madlib.be>
-// -------------------------------------------------------------------
-// Author: Gaetan Compere
-//
-// This file provides an example of an interface to MAdLib as it
-// could be implemented in a physical solver requiring mesh adaptivity.
-// -------------------------------------------------------------------
-
-#ifndef __MADLIBINTERFACE_H
-#define __MADLIBINTERFACE_H
-
-#include "ModelInterface.h"
-#include "MeshDataBaseInterface.h"
-#include "AdaptInterface.h"
-#include "PWLinearSField.h"
-#include <utility>
-#include <set>
-
-//-----------------------------------------------------------------------------
-// For this example, what is needed in the solver side ?
-//-----------------------------------------------------------------------------
-
-/*
-Solver class containing the solver geometrical model if any.
- ( Note that all the steps involving geometrical entities can be
- replaced by appropriate constraints on boundary mesh entities
- (see AdaptInterface.h) but no mesh modification will therefore
- be applied on the boundaries, which can be problematic for some
- computations. )
-*/
-class Solver_model
-{
-public:
- void addGeoEntity(int dim, int id);
- std::set<std::pair<int,int> > getAllGeoEntities() const;
- // return a set of pairs(dimension,id)
- // each pair representing a geometric entity.
-};
-
-/*
- Solver class containing the solver mesh
-*/
-class Solver_mesh
-{
-public:
- void allocate (int nNodes, int nElements) {}
- void addNode (int id, double x, double y, double z) {}
- void addElement (int id, int * nodes) {}
- int getDim() const {return -1;}
- int nVertices() const {return -1;}
- int nElements() const {return -1;}
- const double ** getCoordinates() const {return NULL;}
- const int ** getElements() const {return NULL;}
- const int * getElemGeoTags() const {return NULL;}
-};
-
-/*
- Solver solution. We assume a nodal solution but the current example can be
- easily extended to other discretizations.
-*/
-class Solver_solution
-{
-public:
- double * operator[](int i) {return NULL;}
- const double operator[](int i) const {return 0.;}
-};
-
-/*
- Solver class containing pointers to solver data, solution and mesh
-*/
-class Solver
-{
-public:
- Solver_model * getModel() {return model;}
- Solver_mesh * getMesh() {return mesh;}
- Solver_solution * getSolution() {return solution;}
- void deleteMesh() {}
- void deallocateSolution() {}
- void allocateSolution() {}
- // optional functions:
- void deleteData() {}
- void allocateAndComputeData() {}
- double prescribedEdgeLength(int node) {return 0.;}
-private:
- Solver_model * model;
- Solver_mesh * mesh;
- Solver_solution * solution;
-};
-
-//-----------------------------------------------------------------------------
-// Class interfacing MAdLib with 'Solver'
-//-----------------------------------------------------------------------------
-class MAdLibInterface {
-
-public:
-
- MAdLibInterface();
- ~MAdLibInterface();
-
- void adaptMesh();
-
-private:
-
- // Mesh to mesh conversion
- void importFromMAdMesh(const MAd::pMesh, Solver_mesh *);
- void exportToMAdMesh(const Solver_mesh *, MAd::pMesh);
- void importFromMAdModel(const MAd::pGModel, Solver_model *);
- void exportToMAdModel(const Solver_model *, MAd::pGModel);
-
- // Size field construction
- void buildSizeField(MAd::PWLSField *);
-
- // Solution to solution conversion
- void attachSolutionToMesh(MAd::pMesh);
- void getSolutionFromMesh(MAd::pMesh);
-
-private:
-
- // The solver that needs mesh adaptivity
- Solver * solver;
-
- // Correspondancy tables between nodal id's in the solver
- // and in the MAdLib mesh
- std::map<int,int> MAdToSolverIds;
- std::map<int,int> SolverToMAdIds;
-};
-
-//-----------------------------------------------------------------------------
-
-#endif
-
diff --git a/debian/tmp/usr/share/doc/madlib/Makefile b/debian/tmp/usr/share/doc/madlib/Makefile
deleted file mode 100644
index b32d126..0000000
--- a/debian/tmp/usr/share/doc/madlib/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# -------------------------------------------------------------------
-# MAdLib - Copyright (C) 2008-2009 Universite catholique de Louvain
-#
-# See the Copyright.txt and License.txt files for license information.
-# You should have received a copy of these files along with MAdLib.
-# If not, see <http://www.madlib.be/license/>
-#
-# Please report all bugs and problems to <contrib at madlib.be>
-#
-# Authors: Gaetan Compere, Jean-Francois Remacle
-# -------------------------------------------------------------------
-
-include ../variables
-
-INC = ${MAdLib_INCLUDES}\
- ${DASH}I$(MAdROOT)/Tutorial\
- ${DASH}I$(MAdROOT)/Geo\
- ${DASH}I$(MAdROOT)/Mesh\
- ${DASH}I$(MAdROOT)/Common\
- ${DASH}I$(MAdROOT)/Adapt\
- ${DASH}I$(MAdROOT)/Adapt/constraint\
- ${DASH}I$(MAdROOT)/Adapt/operator\
- ${DASH}I$(MAdROOT)/Adapt/output\
- ${DASH}I$(MAdROOT)/Adapt/quality\
- ${DASH}I$(MAdROOT)/Adapt/repositioning\
- ${DASH}I$(MAdROOT)/Adapt/sizeField\
- ${DASH}I$(MAdROOT)/Adapt/utils
-
-CXXFLAGS = ${OPTIM} ${MAdLib_DEFS} ${FLAGS} ${INC} ${SYSINCLUDE}
-
-SRC = MAdLibInterface.cc
-
-OBJ = ${SRC:.cc=${OBJEXT}}
-
-.SUFFIXES: ${OBJEXT} .cc
-
-.cc${OBJEXT}:
- ${CXX} ${CXXFLAGS} ${DASH}c $< ${DASH}o $@
-
-build: ${OBJ}
-
-clean:
- ${RM} */*.o *.o *.obj
-
-purge:
-
-depend:
- (sed '/^# DO NOT DELETE THIS LINE/q' Makefile && \
- ${CXX} -MM ${CXXFLAGS} ${SRC} | sed 's/.o:/$${OBJEXT}:/g' \
- ) > Makefile.new
- cp Makefile Makefile.bak
- cp Makefile.new Makefile
- rm -f Makefile.new
\ No newline at end of file
diff --git a/debian/tmp/usr/share/doc/madlib/README b/debian/tmp/usr/share/doc/madlib/README
deleted file mode 100644
index 63bf558..0000000
--- a/debian/tmp/usr/share/doc/madlib/README
+++ /dev/null
@@ -1,43 +0,0 @@
-MAdLib - README file.
-
-See the Copyright.txt, License.txt and Credits.txt files for copyright,
-license and authors informations. You should have received a copy of
-these files along with MAdLib. If not, see <http://www.madlib.be/license/>.
-
-Please report bugs and problems to <contrib at madlib.be>.
-
-To compile and install the MAdLib library, you should first run the
-following command:
- make -f Makefile.svn
-This will generate the 'configure' and 'Makefile.in' files required in the
-second step. You need the GNU Autotools (aclocal, autoconf, automake) to
-generate these files.
-
-You can then compile the library by typing
- ./configure [opts];
- make;
- make install;
-
-If you want to compile and install some benchmark executables, type
- ./configure --enable-benchmarks [opts];
- make install-bench;
-
-The documentation is generated and installed automatically with the
-previous compilations if you have Doxygen installed but you can also
-generate it (in doc/) by
- make doc;
-
-The pkgconfig file MAdLib.pc is generated and installed by
- make pc
-
-Note that the configure and make commands can be called from any
-third-part directory. All files built during the compilation
-processes will be stored in that directory, except the documentation.
-
-Also note that you need a linear system solver for the benchmarks that include
-the global node repositioning algorithm, like 'moveIt/example/tube' (for inst. PETSc)
-and a library to compute the distance to a cloud of points (for inst. ANN: add
---enable-ann in the configure command) for benchmarks including local size fields.
-
-To see what options are available, type
- ./configure --help
--
MAdLib, a mesh adaptation library.
More information about the Pkg-scicomp-commits
mailing list