diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..506077f661e03f90a369aeab810eaef4ebd334a2
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,29 @@
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
+if( CMAKE_MAJOR_VERSION EQUAL 2 )
+ if( CMAKE_MINOR_VERSION EQUAL 8 )
+ if( CMAKE_PATCH_VERSION LESS 3 )
+ message(WARNING "CMake version is inferior to 2.8.3, some features may not be well supported")
+ endif( CMAKE_PATCH_VERSION LESS 3 )
+ endif( CMAKE_MINOR_VERSION EQUAL 8 )
+endif( CMAKE_MAJOR_VERSION EQUAL 2 )
+
+# path to homemade/taken macros/finds
+set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/src/tools/cmake/modules ${CMAKE_MODULE_PATH})
+
+# Force out-of-source build
+include(OutOfSourcesBuild)
+
+project(LMGC90_dev Fortran C CXX)
+
+SET(LMGC90_MAJOR_VERSION 2)
+SET(LMGC90_MINOR_VERSION 0)
+SET(LMGC90_PATCH_VERSION 0)
+
+MESSAGE(STATUS "You try to build LMGC90_dev")
+
+
+include(CTest)
+
+add_subdirectory(src)
+
diff --git a/README.md b/README.md
index 2c5d46e92b25f50f177facaaa9edf4ae9f3d4d8b..f3ce3c0ab0dfb6191789f8aa3d8f0661ef222446 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,21 @@
-
-
# LMGC90 project: user version #
# Downloading
-To get the project please check [here](https://git-xen.lmgc.univ-montp2.fr/lmgc90/lmgc90_user/wikis/download_and_install)
+To get the project please check [here](https://git-xen.lmgc.univ-montp2.fr/lmgc90/lmgc90_user/wikis/home)
+
+# Contact us
+If you'd like to speak about a bad behavior of a simulation, to propose a non
+regression test, to propose a new feature or any thing relative to the
+development of LMGC90, please contact us via this mailing list:
+
+lmgc90-dev@groupes.renater.fr
+
+To stay aware, you can subscribe to this mailing list by asking to:
+ - Dubois Frédéric : frederic.dubois@umontpellier.fr
+ - Rémy Mozul : remy.mozul@umontpellier.fr
# Organization
@@ -24,6 +33,14 @@ For Windows user, jump to [Windows Version section](#winversion)
# Linux and MacOS version
+# Versionning
+
+People contributing to the project can view up-to-date information
+[here](https://git-xen.lmgc.univ-montp2.fr/lmgc90/lmgc90_user/tree/master)
+
+The versionning tool used is git. To have more information the workflow used
+and how to use git check [there](https://git-xen.lmgc.univ-montp2.fr/lmgc90/lmgc90_user/wikis/LMGC90_user)
+
With MacOS and Linux the installation and use of LMGC90 software is through
the use of the terminal. You must know how to open a terminal in a specific
directory and move through your directory tree.
@@ -59,11 +76,20 @@ For visualisation:
* Python VTK module
* Paraview
+To build the sphinx documentation:
+
+ * Latex distribution (with pdflatex utility)
+ * Sphinx and numpydoc
+ * Doxygen
+ * Graphviz
+ * dvipng
+
To read some tutorials:
* Jupyter
* iPython
+
### Ubuntu 12.04/14.04 Debian 7
To compile:
@@ -78,6 +104,12 @@ To visualize:
apt-get install python-vtk paraview
```
+To build the documentation:
+
+```
+apt-get install doxygen graphviz python-numpydoc texlive-latex-extra dvipng imagemagick
+```
+
To read tutorials
```
@@ -105,6 +137,12 @@ Due to some problem one must add to the *.bashrc* file a line similar to:
export LD_LIBRARY_PATH=/usr/lib64/mpi/gcc/openmpi/lib64
```
+To build the documentation:
+
+```
+zypper install doxygen graphviz python-numpydoc texlive-dvipng ImageMagick
+```
+
To read tutorials
```
@@ -128,6 +166,12 @@ yum install epel-release
yum install vtk-python paraview
```
+To build the documentation:
+
+```
+yum install doxygen graphviz tex-preview textlive-latex texlive-dvipng python-sphinx python-numpydoc ImageMagick
+```
+
To read tutorials
```
@@ -152,7 +196,7 @@ sudo port select gcc mp-gcc49
sudo port select python python27
```
-For the doc:
+To build the documentation:
```
doxygen graphviz py27-sphinx py27-numpydoc texlive-latex-extra dvipng ImageMagick
@@ -176,10 +220,47 @@ In the *lmgc90_user* directory run:
```shell
mkdir build
cd build
-cmake ../src
+cmake ..
+make
+```
+
+CMake is used to generate the makefile. Out of source build is advised.
+So you need to know the source tree path, decide on a build path then:
+
+```
+cd build_path
+cmake source_path
make
```
+Instead of cmake, one can use *ccmake* to change variable values on
+the command line, or *cmake-gui* to use graphical interface.
+
+If you are only interested in rigid computations, some external libraries
+can be disabled ; before the ```make``` command, run:
+
+```
+cmake . -DMATLIB_VERSION=none -DMUMPS_VERSION=none
+```
+
+If you want to build the documentation run :
+
+```
+make docs
+```
+
+It will build the sphinx documentation in:
+
+ * docs/chipy/
+ * docs/dev/
+ * docs/Pre/
+
+Where you should open the ```index.html``` file.
+
+The doxygen documentation of the the core of the software would be in ```src/Docs/html/index.html```.
+
+
+
## Installing
Our policy is to not mess with default system paths. So instead we advise to
@@ -234,7 +315,7 @@ in general.
The only pre-requisite to use LMGC90 on Windows is the Python distribution used.
A binary build is provided to work with the Anaconda python distribution
-which can be downloaded from [here](https://repo.continuum.io/archive/.winzip/Anaconda2-2.5.0-Windows-x86_64.zip).
+which can be downloaded from [here](https://repo.continuum.io/archive/.winzip/Anaconda2-2.5.0-Windows-x86.zip).
Once the file downloaded, unzip it and run the installer.
To generate visualization files the **vtk** python module must be added. To do that
diff --git a/docs/Pre/.buildinfo b/docs/Pre/.buildinfo
index be3e4219d25c4f8f2cc6f120f6c9f54dd43b830c..d2e57160bb194e8f5e3b4d65324e9de69bae453d 100644
--- a/docs/Pre/.buildinfo
+++ b/docs/Pre/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 7087fddd1fcf46ba6ed4e8ccea462539
+config: 18d4cbd131087e90d4cf97685dfe9ec3
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/Pre/_downloads/granular.py b/docs/Pre/_downloads/granular.py
index 47266ae29662bf2335e903ff766c131aa5899c1c..16278b3f72bddf80f7e5ebcfb682a9e2e8a8f62d 100644
--- a/docs/Pre/_downloads/granular.py
+++ b/docs/Pre/_downloads/granular.py
@@ -1,6 +1,6 @@
import math
-from pylmgc90.pre_lmgc import *
+from pylmgc90.pre import *
nb_particles = 10000
radius_min = 1.0
@@ -12,8 +12,8 @@ ly = 100.
[nb_laid_particles, coors] = depositInBox2D(radii,lx,ly)
-mat = material(name='TDURx', type='RIGID', density=100.)
-mod = model(name='rigid', type='MECAx', element='Rxx2D', dimension=2)
+mat = material(name='TDURx', materialType='RIGID', density=100.)
+mod = model(name='rigid', physics='MECAx', element='Rxx2D', dimension=2)
# generate the triangles
bodies = avatars()
@@ -24,7 +24,7 @@ for i in range(nb_laid_particles):
max_radius = max(radii)
-mut = material(name='TDURx', type='RIGID', density=1000.)
+mut = material(name='TDURx', materialType='RIGID', density=1000.)
# left wall : rough wall
left = roughWall( center=[-radius_max, 0.5*ly], theta=-0.5*math.pi, l=ly + 2.*radius_max,
@@ -55,7 +55,7 @@ svs = see_tables()
tacts = tact_behavs()
# interaction definition:
-lplpl=tact_behav(name='iqsc0', type='IQS_CLB', fric=0.3)
+lplpl=tact_behav(name='iqsc0', law='IQS_CLB', fric=0.3)
tacts+=lplpl
svplpl = see_table(CorpsCandidat='RBDY2', candidat='POLYG', colorCandidat='BLUEx', behav=lplpl,
CorpsAntagoniste='RBDY2', antagoniste='POLYG', colorAntagoniste='BLUEx', alert=.1)
diff --git a/docs/Pre/_downloads/masonry.py b/docs/Pre/_downloads/masonry.py
index d3913f8685b054d468e9b0a13c3e58875a59adef..40f81f967fe61c5311604421dea94f2355139496 100644
--- a/docs/Pre/_downloads/masonry.py
+++ b/docs/Pre/_downloads/masonry.py
@@ -1,13 +1,13 @@
import numpy
import math
-from pylmgc90.pre_lmgc import *
+from pylmgc90.pre import *
dim = 2
bodies = avatars()
-mat = material(name='PLEXx',type='RIGID',density=2000.)
-mod = model(name='rigid', type='MECAx', element='Rxx2D', dimension=dim)
+mat = material(name='PLEXx',materialType='RIGID',density=2000.)
+mod = model(name='rigid', physics='MECAx', element='Rxx2D', dimension=dim)
# bricks, half-brick, linteau and opening definition
brick = brick2D('brick', 1.e-1, 5.e-2)
@@ -71,7 +71,7 @@ mats = materials()
svs = see_tables()
tacts = tact_behavs()
-mut = material(name='TDURx',type='RIGID',density=2500.)
+mut = material(name='TDURx',materialType='RIGID',density=2500.)
mats.addMaterial(mat,mut)
floor = rigidJonc(axe1=3.e-1, axe2=2.5e-2, center=[2.5e-1, -2.5e-2],
@@ -86,9 +86,9 @@ except:
pass
# interactions management :
-lplpl=tact_behav(name='iqsc0',type='IQS_CLB',fric=0.3)
+lplpl=tact_behav(name='iqsc0',law='IQS_CLB',fric=0.3)
tacts+=lplpl
-lpljc=tact_behav(name='iqsc1',type='IQS_CLB',fric=0.5)
+lpljc=tact_behav(name='iqsc1',law='IQS_CLB',fric=0.5)
tacts+=lpljc
svbbbb = see_table(CorpsCandidat='RBDY2',candidat='POLYG', colorCandidat='BLEUx',behav=lplpl,
CorpsAntagoniste='RBDY2', antagoniste='POLYG',colorAntagoniste='BLEUx',alert=5.e-3)
diff --git a/docs/Pre/_downloads/philosophie.py b/docs/Pre/_downloads/philosophie.py
index b9de7dcc2164b215ddad79c7cf9b4dbad4c5cfda..3c0103f2ece2ce7eb9bd8b7bfbff828c3c0e6ae9 100644
--- a/docs/Pre/_downloads/philosophie.py
+++ b/docs/Pre/_downloads/philosophie.py
@@ -1,30 +1,30 @@
import numpy
import math
-from pylmgc90.pre_lmgc import *
+from pylmgc90.pre import *
dim = 2
# disk creation
radius = 0.1
-disk = avatar(type='RBDY2', dimension=dim)
-disk.addNode( node(type='NO2xx',coor=numpy.array([0.,0.1]),number=1) )
+disk = avatar(dimension=dim)
+disk.addNode( node(coor=numpy.array([0.,0.1]),number=1) )
disk.addBulk( rigid2d() )
disk.defineGroups()
-disk.addContactors(type='DISKx',color='BLUEx',byrd=radius)
+disk.addContactors(shape='DISKx',color='BLUEx',byrd=radius)
# foundation creation
-floor = avatar(type='RBDY2', dimension=dim)
-floor.addNode( node(type='NO2xx',coor=numpy.array([0.,-0.05]),number=1) )
+floor = avatar(dimension=dim)
+floor.addNode( node(coor=numpy.array([0.,-0.05]),number=1) )
floor.addBulk( rigid2d() )
floor.defineGroups()
-floor.addContactors(type='JONCx',color='BLUEx',axe1=1.,axe2=0.05)
+floor.addContactors(shape='JONCx',color='BLUEx',axe1=1.,axe2=0.05)
# materials, model and groups definition
-mat = material(name='TDURx',type='RIGID',density=1000.)
-mut = material(name='MOUxx',type='RIGID',density=100.)
-mod = model(name='rigid', type='MECAx', element='Rxx2D', dimension=dim)
+mat = material(name='TDURx',materialType='RIGID',density=1000.)
+mut = material(name='MOUxx',materialType='RIGID',density=100.)
+mod = model(name='rigid', physics='MECAx', element='Rxx2D', dimension=dim)
disk.defineModel(model=mod)
disk.defineMaterial(material=mut)
disk.computeRigidProperties()
@@ -56,7 +56,7 @@ for i in range(nb_columns):
# adding floor and rotation sample
bodies.addAvatar(floor)
-bodies.rotate(type='axis', alpha=-math.pi/6., axis=[0., 0., 1.], center=[1.,-0.05])
+bodies.rotate(description='axis', alpha=-math.pi/6., axis=[0., 0., 1.], center=[1.,-0.05])
try:
visuAvatars(bodies)
@@ -70,7 +70,7 @@ svs = see_tables()
tacts = tact_behavs()
# interaction definition:
-ldkjc=tact_behav(name='iqsc0', type='IQS_CLB', fric=0.3)
+ldkjc=tact_behav(name='iqsc0', law='IQS_CLB', fric=0.3)
tacts+=ldkjc
svdkjc = see_table(CorpsCandidat='RBDY2', candidat='DISKx', colorCandidat='BLUEx', behav=ldkjc,
CorpsAntagoniste='RBDY2', antagoniste='JONCx', colorAntagoniste='BLUEx', alert=.1)
diff --git a/docs/Pre/_images/math/034415649a7db35f209020f05e7ab6ac3d6e086b.png b/docs/Pre/_images/math/034415649a7db35f209020f05e7ab6ac3d6e086b.png
deleted file mode 100644
index fe812875f214753e4dc87f422cb924915056cae7..0000000000000000000000000000000000000000
Binary files a/docs/Pre/_images/math/034415649a7db35f209020f05e7ab6ac3d6e086b.png and /dev/null differ
diff --git a/docs/Pre/_images/math/2ea7aebf6e172bdbb4b352fe0520f84304f478e7.png b/docs/Pre/_images/math/2ea7aebf6e172bdbb4b352fe0520f84304f478e7.png
new file mode 100644
index 0000000000000000000000000000000000000000..587ddf3fa694896842853d5851ddd83302299b98
Binary files /dev/null and b/docs/Pre/_images/math/2ea7aebf6e172bdbb4b352fe0520f84304f478e7.png differ
diff --git a/docs/Pre/_images/math/389ab841ae16a7cebd461d3c10bda5daa9b232a2.png b/docs/Pre/_images/math/389ab841ae16a7cebd461d3c10bda5daa9b232a2.png
deleted file mode 100644
index 031b1f61f9d0ddfc23211fcab38c83624300e8e2..0000000000000000000000000000000000000000
Binary files a/docs/Pre/_images/math/389ab841ae16a7cebd461d3c10bda5daa9b232a2.png and /dev/null differ
diff --git a/docs/Pre/_images/math/667188468983fb96809cdfaec211b867038325ef.png b/docs/Pre/_images/math/667188468983fb96809cdfaec211b867038325ef.png
deleted file mode 100644
index 7a247b6e7e1680c70536955ac39720c2e4a64f01..0000000000000000000000000000000000000000
Binary files a/docs/Pre/_images/math/667188468983fb96809cdfaec211b867038325ef.png and /dev/null differ
diff --git a/docs/Pre/_images/math/a6795d14a31aa864e162da06bcc14d9801cbdc11.png b/docs/Pre/_images/math/a6795d14a31aa864e162da06bcc14d9801cbdc11.png
new file mode 100644
index 0000000000000000000000000000000000000000..b87f7eda16af2c7e0e4d1b0643527aa53f2e89e0
Binary files /dev/null and b/docs/Pre/_images/math/a6795d14a31aa864e162da06bcc14d9801cbdc11.png differ
diff --git a/docs/Pre/_images/math/b39229bb92adf679ebe7aa3a58f330b21d6ed3d5.png b/docs/Pre/_images/math/b39229bb92adf679ebe7aa3a58f330b21d6ed3d5.png
new file mode 100644
index 0000000000000000000000000000000000000000..8507e989301b4e24fdeebea8d0e6ac322a9429f8
Binary files /dev/null and b/docs/Pre/_images/math/b39229bb92adf679ebe7aa3a58f330b21d6ed3d5.png differ
diff --git a/docs/Pre/_images/math/b425d925f1283bab52dde13193ba99f3de20e162.png b/docs/Pre/_images/math/b425d925f1283bab52dde13193ba99f3de20e162.png
new file mode 100644
index 0000000000000000000000000000000000000000..2cad59e1aa1a722d76aebc26b40d8efb25566129
Binary files /dev/null and b/docs/Pre/_images/math/b425d925f1283bab52dde13193ba99f3de20e162.png differ
diff --git a/docs/Pre/_images/math/cb4e1cb31029f79454cae98fb73221ca8662ea5b.png b/docs/Pre/_images/math/cb4e1cb31029f79454cae98fb73221ca8662ea5b.png
new file mode 100644
index 0000000000000000000000000000000000000000..38d7d5bc966f44f881013cad97c45c5bee7b376f
Binary files /dev/null and b/docs/Pre/_images/math/cb4e1cb31029f79454cae98fb73221ca8662ea5b.png differ
diff --git a/docs/Pre/_images/math/d7f19ed033c8c88a6b4e5c502fe8271c336f971a.png b/docs/Pre/_images/math/d7f19ed033c8c88a6b4e5c502fe8271c336f971a.png
deleted file mode 100644
index 031b1f61f9d0ddfc23211fcab38c83624300e8e2..0000000000000000000000000000000000000000
Binary files a/docs/Pre/_images/math/d7f19ed033c8c88a6b4e5c502fe8271c336f971a.png and /dev/null differ
diff --git a/docs/Pre/_images/math/ddbf765aa11044bb82b756cb3413f75341a70edf.png b/docs/Pre/_images/math/ddbf765aa11044bb82b756cb3413f75341a70edf.png
deleted file mode 100644
index fe812875f214753e4dc87f422cb924915056cae7..0000000000000000000000000000000000000000
Binary files a/docs/Pre/_images/math/ddbf765aa11044bb82b756cb3413f75341a70edf.png and /dev/null differ
diff --git a/docs/Pre/_images/math/dea7f64cf4bcd7736b969f26733210c014965bc2.png b/docs/Pre/_images/math/dea7f64cf4bcd7736b969f26733210c014965bc2.png
new file mode 100644
index 0000000000000000000000000000000000000000..2cad59e1aa1a722d76aebc26b40d8efb25566129
Binary files /dev/null and b/docs/Pre/_images/math/dea7f64cf4bcd7736b969f26733210c014965bc2.png differ
diff --git a/docs/Pre/_images/math/ec6a660dca89c326a9f6d7a6ee1caf28c29025c9.png b/docs/Pre/_images/math/ec6a660dca89c326a9f6d7a6ee1caf28c29025c9.png
deleted file mode 100644
index e5f4bd03ae7fa2564d57568118eb01b880934224..0000000000000000000000000000000000000000
Binary files a/docs/Pre/_images/math/ec6a660dca89c326a9f6d7a6ee1caf28c29025c9.png and /dev/null differ
diff --git a/docs/Pre/_images/math/f577ce5d55c8fcd63b7fdb0ac8a27d2550e1ede8.png b/docs/Pre/_images/math/f577ce5d55c8fcd63b7fdb0ac8a27d2550e1ede8.png
deleted file mode 100644
index 72c7557a9133c939b951c91030debcfdd52f2de2..0000000000000000000000000000000000000000
Binary files a/docs/Pre/_images/math/f577ce5d55c8fcd63b7fdb0ac8a27d2550e1ede8.png and /dev/null differ
diff --git a/docs/Pre/_modules/index.html b/docs/Pre/_modules/index.html
index fb3db01f38a1a89d97cbbf346b1e1bcc4ff57793..011ac3895e1acf058f53b72329a2e46b336435cd 100644
--- a/docs/Pre/_modules/index.html
+++ b/docs/Pre/_modules/index.html
@@ -45,36 +45,36 @@
All modules for which code is available
-
@@ -85,8 +85,8 @@
Quick search
@@ -110,7 +110,7 @@