diff --git a/INSTALL.rst b/INSTALL.rst
index cd7a81d..9810407 100644
--- a/INSTALL.rst
+++ b/INSTALL.rst
@@ -1,3 +1,64 @@
Installation
============
+Recommended way is to install a package in the virtual environment.
+Just create and activate python virtual environment:
+
+.. code-block:: bash
+
+ $ python -m venv env
+ $ source env/bin/activate
+
+and run pip inside (upgrade pip if you need):
+
+.. code-block:: bash
+
+ (env) $ python -m pip install --upgrade pip
+ (env) $ python -m pip install .
+
+External applications
+---------------------
+
+Anisotropy project requires ``Salome`` and ``OpenFOAM`` executables be ``PATH``.
+
+1. For simple way you can use next commands (each time):
+
+.. code-block:: bash
+
+ $ export PATH="${PATH}:${HOME}/PATH/TO/SALOME/DIRECTORY"
+ $ source "${HOME}/PATH/TO/OPENFOAM/DIRECTORY/etc/bashrc"
+
+2. Or modify file ``conf/bashrc`` in project directory (example)
+
+.. code-block:: bash
+
+ export PATH="${PATH}:${HOME}/programs/salome/SALOME-9.7.0-MPI"
+ source "${HOME}/programs/OpenFOAM/OpenFOAM-v2012/etc/bashrc"
+
+and source it (each time):
+
+.. code-block:: bash
+
+ $ source conf/bashrc
+
+3. The best way is modify file like in step 2 and append it to virtual environment activate script:
+
+.. code-block:: bash
+
+ $ cat conf/bashrc | tee -a env/bin/activate
+
+So next time you just need to ``source env/bin/activate`` and you completely ready.
+
+Building documentaion
+---------------------
+
+For building documentaion you must sure that all requirements installed.
+Project uses ``Sphinx`` and ``make`` for building:
+
+.. code-block:: bash
+
+ $ source env/bin/activate
+ (env) $ cd docs
+ (env) $ make html
+
+
diff --git a/README.rst b/README.rst
index 9644ff0..7505851 100644
--- a/README.rst
+++ b/README.rst
@@ -1,22 +1,24 @@
anisotropy
-===============
+==========
Requirements
------------
-* python 3.5>
-* OpenFOAM
-* SALOME
-* ParaView
+.. csv-table:: Requirements
+ :header: "Software", "Used version", "Recommended version"
-Running
--------
+ "Python", "3.9.6", "> 3.6"
+ "Salome", "9.7.0", "> 9.6.0"
+ "OpenFOAM", "v2012", ""
-*in progress*
+Installation
+------------
+
+For installation guide see ``INSTALL``.
License
-------
GNU GPLv3
-For more information see ``LICENSE`` file in this repository.
+For more information see ``LICENSE``.
diff --git a/anisotropy/core/cli.py b/anisotropy/core/cli.py
index 3c01109..a6712e0 100644
--- a/anisotropy/core/cli.py
+++ b/anisotropy/core/cli.py
@@ -203,26 +203,6 @@ def computemesh(root, type, direction, theta):
model.genmesh()
-
-@anisotropy.command(
- help = """Build documentation
-
- TARGET is the builder to use (default: html)
- """
-)
-@click.argument(
- "target",
- default = "html"
-)
-def docs(target):
- from sphinx.cmd.make_mode import run_make_mode
- from anisotropy import env
-
- sourcepath = os.path.join(env["DOCS"], "source")
- buildpath = os.path.join(env["DOCS"], "build")
-
- run_make_mode([target, sourcepath, buildpath])
-
###
# CLI entry
##
diff --git a/docs/source/INSTALL.rst b/docs/source/INSTALL.rst
index cd7a81d..9810407 100644
--- a/docs/source/INSTALL.rst
+++ b/docs/source/INSTALL.rst
@@ -1,3 +1,64 @@
Installation
============
+Recommended way is to install a package in the virtual environment.
+Just create and activate python virtual environment:
+
+.. code-block:: bash
+
+ $ python -m venv env
+ $ source env/bin/activate
+
+and run pip inside (upgrade pip if you need):
+
+.. code-block:: bash
+
+ (env) $ python -m pip install --upgrade pip
+ (env) $ python -m pip install .
+
+External applications
+---------------------
+
+Anisotropy project requires ``Salome`` and ``OpenFOAM`` executables be ``PATH``.
+
+1. For simple way you can use next commands (each time):
+
+.. code-block:: bash
+
+ $ export PATH="${PATH}:${HOME}/PATH/TO/SALOME/DIRECTORY"
+ $ source "${HOME}/PATH/TO/OPENFOAM/DIRECTORY/etc/bashrc"
+
+2. Or modify file ``conf/bashrc`` in project directory (example)
+
+.. code-block:: bash
+
+ export PATH="${PATH}:${HOME}/programs/salome/SALOME-9.7.0-MPI"
+ source "${HOME}/programs/OpenFOAM/OpenFOAM-v2012/etc/bashrc"
+
+and source it (each time):
+
+.. code-block:: bash
+
+ $ source conf/bashrc
+
+3. The best way is modify file like in step 2 and append it to virtual environment activate script:
+
+.. code-block:: bash
+
+ $ cat conf/bashrc | tee -a env/bin/activate
+
+So next time you just need to ``source env/bin/activate`` and you completely ready.
+
+Building documentaion
+---------------------
+
+For building documentaion you must sure that all requirements installed.
+Project uses ``Sphinx`` and ``make`` for building:
+
+.. code-block:: bash
+
+ $ source env/bin/activate
+ (env) $ cd docs
+ (env) $ make html
+
+
diff --git a/docs/source/anisotropy.rst b/docs/source/anisotropy.rst
index 255eea7..9e7eb87 100644
--- a/docs/source/anisotropy.rst
+++ b/docs/source/anisotropy.rst
@@ -1,4 +1,4 @@
-anisotropy package
+Anisotropy package
==================
Subpackages
diff --git a/docs/source/conf.py b/docs/source/conf.py
index f56a150..b00c20b 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -52,3 +52,6 @@ html_theme = 'sphinx_rtd_theme'
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['static']
+html_css_files = [
+ "static/style.css"
+]
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 2495dd9..c6807b0 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -12,6 +12,7 @@ Welcome to anisotropy's documentation!
INSTALL
anisotropy
+ notes
.. include:: ../../README.rst
diff --git a/docs/source/modules.rst b/docs/source/modules.rst
deleted file mode 100644
index 923dea1..0000000
--- a/docs/source/modules.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-anisotropy
-==========
-
-.. toctree::
- :maxdepth: 4
-
- anisotropy
- setup
- tests
diff --git a/docs/source/notes.rst b/docs/source/notes.rst
new file mode 100644
index 0000000..8002b31
--- /dev/null
+++ b/docs/source/notes.rst
@@ -0,0 +1,7 @@
+Notes
+=====
+
+.. toctree::
+ :glob:
+
+ notes/*
diff --git a/docs/source/notes/database.rst b/docs/source/notes/database.rst
new file mode 100644
index 0000000..ab7dce8
--- /dev/null
+++ b/docs/source/notes/database.rst
@@ -0,0 +1,6 @@
+Database hierarchy
+==================
+
+Current anisotropy database hierarchy:
+
+.. image:: ../static/er-diagram.png
diff --git a/notes/images.rst b/docs/source/notes/images.rst
similarity index 75%
rename from notes/images.rst
rename to docs/source/notes/images.rst
index 1530d21..f74affd 100644
--- a/notes/images.rst
+++ b/docs/source/notes/images.rst
@@ -1,11 +1,15 @@
Usefull command for making images
=================================
+For database ER diagram (``peewee_erd``):
+
.. code-block:: python
from peewee_erd import draw
draw(["anisotropy/core/models.py"], "docs/source/static/er-diagram.svg", "#333333", "#eeeeee", 12, False, False)
+For project structure (``pydeps``):
+
.. code-block:: bash
- pydeps anisotropy --max-bacon 2 --cluster -o docs/source/static/deps.svg --noshow
+ pydeps anisotropy --max-bacon 2 --cluster -o docs/source/static/deps.svg -T svg --noshow
diff --git a/notes/mesh.rst b/docs/source/notes/mesh.rst
similarity index 99%
rename from notes/mesh.rst
rename to docs/source/notes/mesh.rst
index 7ed145c..08e0a07 100644
--- a/notes/mesh.rst
+++ b/docs/source/notes/mesh.rst
@@ -11,7 +11,6 @@ The main goal for the current meshes is to achieve the following points:
Example:
.. code-block:: python
- :linenos:
shape, groups = simple(0.28, True, [1, 0, 0])
lengths = [ geompy.BasicProperties(edge)[0] for edge in geompy.SubShapeAll(shape, geompy.ShapeType["EDGE"]) ]
diff --git a/notes/netgen.rst b/docs/source/notes/netgen.rst
similarity index 99%
rename from notes/netgen.rst
rename to docs/source/notes/netgen.rst
index 3422faf..98ee12d 100644
--- a/notes/netgen.rst
+++ b/docs/source/notes/netgen.rst
@@ -1,6 +1,5 @@
-===============
-Mesh generation
-===============
+Salome Netgen parameters
+========================
.. ``netgen parameters``
minSize
diff --git a/notes/of-tools.rst b/docs/source/notes/of-tools.rst
similarity index 72%
rename from notes/of-tools.rst
rename to docs/source/notes/of-tools.rst
index 32d0648..23b36e8 100644
--- a/notes/of-tools.rst
+++ b/docs/source/notes/of-tools.rst
@@ -1,3 +1,5 @@
+OpenFOAM usefull utils
+======================
- createPatch
- polyDualMesh
diff --git a/docs/source/notes/sphinx.rst b/docs/source/notes/sphinx.rst
new file mode 100644
index 0000000..d50db14
--- /dev/null
+++ b/docs/source/notes/sphinx.rst
@@ -0,0 +1,8 @@
+Sphinx apidoc and build
+=======================
+
+.. code-block:: bash
+
+ $ sphinx-apidoc -o docs/source/ ./
+ $ cd docs
+ $ make html
diff --git a/docs/source/notes/structure.rst b/docs/source/notes/structure.rst
new file mode 100644
index 0000000..0f2147c
--- /dev/null
+++ b/docs/source/notes/structure.rst
@@ -0,0 +1,6 @@
+Anisotropy package structure
+============================
+
+Current anisotropy project structure:
+
+.. image:: ../static/structure.png
diff --git a/docs/source/setup.rst b/docs/source/setup.rst
deleted file mode 100644
index 552eb49..0000000
--- a/docs/source/setup.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-setup module
-============
-
-.. automodule:: setup
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/docs/source/static/er-diagram b/docs/source/static/er-diagram
new file mode 100644
index 0000000..0c8f58b
--- /dev/null
+++ b/docs/source/static/er-diagram
@@ -0,0 +1,591 @@
+digraph erd {
+ fontname = "Helvetica"
+ fontsize = 12
+ splines = true
+ node [
+ shape = "plaintext"
+ ]
+
+ "BaseModel"
+ [label=<
+
+
+
+ BaseModel
+ |
+
+
+ id
+ |
+ AutoField
+ |
'''
+
+
+ >]
+
+ "Flow"
+ [label=<
+
+
+
+ Flow
+ |
+
+
+ flow_id
+ |
+ AutoField
+ |
'''
+
+
+ structure_id
+ |
+ ForeignKeyField
+ |
'''
+
+
+ scale
+ |
+ ListField
+ |
'''
+
+
+ pressure
+ |
+ JSONField
+ |
'''
+
+
+ velocity
+ |
+ JSONField
+ |
'''
+
+
+ transportProperties
+ |
+ JSONField
+ |
'''
+
+
+ >]
+
+ "FlowApproximation"
+ [label=<
+
+
+
+ FlowApproximation
+ |
+
+
+ flow_approximation_id
+ |
+ AutoField
+ |
'''
+
+
+ flow_id
+ |
+ ForeignKeyField
+ |
'''
+
+
+ pressure
+ |
+ JSONField
+ |
'''
+
+
+ velocity
+ |
+ JSONField
+ |
'''
+
+
+ transportProperties
+ |
+ JSONField
+ |
'''
+
+
+ >]
+
+ "FlowResult"
+ [label=<
+
+
+
+ FlowResult
+ |
+
+
+ flowresult_id
+ |
+ AutoField
+ |
'''
+
+
+ flow_id
+ |
+ ForeignKeyField
+ |
'''
+
+
+ flowRate
+ |
+ FloatField
+ |
'''
+
+
+ status
+ |
+ TextField
+ |
'''
+
+
+ calculationTime
+ |
+ TimeField
+ |
'''
+
+
+ >]
+
+ "Mesh"
+ [label=<
+
+
+
+ Mesh
+ |
+
+
+ mesh_id
+ |
+ AutoField
+ |
'''
+
+
+ structure_id
+ |
+ ForeignKeyField
+ |
'''
+
+
+ maxSize
+ |
+ FloatField
+ |
'''
+
+
+ minSize
+ |
+ FloatField
+ |
'''
+
+
+ fineness
+ |
+ IntegerField
+ |
'''
+
+
+ growthRate
+ |
+ FloatField
+ |
'''
+
+
+ nbSegPerEdge
+ |
+ FloatField
+ |
'''
+
+
+ nbSegPerRadius
+ |
+ FloatField
+ |
'''
+
+
+ chordalErrorEnabled
+ |
+ BooleanField
+ |
'''
+
+
+ chordalError
+ |
+ FloatField
+ |
'''
+
+
+ secondOrder
+ |
+ BooleanField
+ |
'''
+
+
+ optimize
+ |
+ BooleanField
+ |
'''
+
+
+ quadAllowed
+ |
+ BooleanField
+ |
'''
+
+
+ useSurfaceCurvature
+ |
+ BooleanField
+ |
'''
+
+
+ fuseEdges
+ |
+ BooleanField
+ |
'''
+
+
+ checkChartBoundary
+ |
+ BooleanField
+ |
'''
+
+
+ viscousLayers
+ |
+ BooleanField
+ |
'''
+
+
+ thickness
+ |
+ FloatField
+ |
'''
+
+
+ numberOfLayers
+ |
+ IntegerField
+ |
'''
+
+
+ stretchFactor
+ |
+ FloatField
+ |
'''
+
+
+ isFacesToIgnore
+ |
+ BooleanField
+ |
'''
+
+
+ facesToIgnore
+ |
+ ListField
+ |
'''
+
+
+ extrusionMethod
+ |
+ TextField
+ |
'''
+
+
+ >]
+
+ "MeshResult"
+ [label=<
+
+
+
+ MeshResult
+ |
+
+
+ meshresult_id
+ |
+ AutoField
+ |
'''
+
+
+ mesh_id
+ |
+ ForeignKeyField
+ |
'''
+
+
+ surfaceArea
+ |
+ FloatField
+ |
'''
+
+
+ volume
+ |
+ FloatField
+ |
'''
+
+
+ elements
+ |
+ IntegerField
+ |
'''
+
+
+ edges
+ |
+ IntegerField
+ |
'''
+
+
+ faces
+ |
+ IntegerField
+ |
'''
+
+
+ volumes
+ |
+ IntegerField
+ |
'''
+
+
+ tetrahedrons
+ |
+ IntegerField
+ |
'''
+
+
+ prisms
+ |
+ IntegerField
+ |
'''
+
+
+ pyramids
+ |
+ IntegerField
+ |
'''
+
+
+ status
+ |
+ TextField
+ |
'''
+
+
+ calculationTime
+ |
+ TimeField
+ |
'''
+
+
+ >]
+
+ "Structure"
+ [label=<
+
+
+
+ Structure
+ |
+
+
+ structure_id
+ |
+ AutoField
+ |
'''
+
+
+ type
+ |
+ TextField
+ |
'''
+
+
+ direction
+ |
+ ListField
+ |
'''
+
+
+ theta
+ |
+ FloatField
+ |
'''
+
+
+ r0
+ |
+ FloatField
+ |
'''
+
+
+ L
+ |
+ FloatField
+ |
'''
+
+
+ radius
+ |
+ FloatField
+ |
'''
+
+
+ filletsEnabled
+ |
+ BooleanField
+ |
'''
+
+
+ fillets
+ |
+ FloatField
+ |
'''
+
+
+ >]
+
+ "SubMesh"
+ [label=<
+
+
+
+ SubMesh
+ |
+
+
+ submesh_id
+ |
+ AutoField
+ |
'''
+
+
+ mesh_id
+ |
+ ForeignKeyField
+ |
'''
+
+
+ name
+ |
+ TextField
+ |
'''
+
+
+ maxSize
+ |
+ FloatField
+ |
'''
+
+
+ minSize
+ |
+ FloatField
+ |
'''
+
+
+ fineness
+ |
+ IntegerField
+ |
'''
+
+
+ growthRate
+ |
+ FloatField
+ |
'''
+
+
+ nbSegPerEdge
+ |
+ FloatField
+ |
'''
+
+
+ nbSegPerRadius
+ |
+ FloatField
+ |
'''
+
+
+ chordalErrorEnabled
+ |
+ BooleanField
+ |
'''
+
+
+ chordalError
+ |
+ FloatField
+ |
'''
+
+
+ secondOrder
+ |
+ BooleanField
+ |
'''
+
+
+ optimize
+ |
+ BooleanField
+ |
'''
+
+
+ quadAllowed
+ |
+ BooleanField
+ |
'''
+
+
+ useSurfaceCurvature
+ |
+ BooleanField
+ |
'''
+
+
+ fuseEdges
+ |
+ BooleanField
+ |
'''
+
+
+ checkChartBoundary
+ |
+ BooleanField
+ |
'''
+
+
+ >]
+
+
+ "Flow":"structure_id" -> "Structure":"structure_id"
+ [arrowhead=empty, arrowtail=none, dir=both];
+
+ "FlowApproximation":"flow_id" -> "Flow":"flow_id"
+ [arrowhead=empty, arrowtail=none, dir=both];
+
+ "FlowResult":"flow_id" -> "Flow":"flow_id"
+ [arrowhead=empty, arrowtail=none, dir=both];
+
+ "Mesh":"structure_id" -> "Structure":"structure_id"
+ [arrowhead=empty, arrowtail=none, dir=both];
+
+ "MeshResult":"mesh_id" -> "Mesh":"mesh_id"
+ [arrowhead=empty, arrowtail=none, dir=both];
+
+ "SubMesh":"mesh_id" -> "Mesh":"mesh_id"
+ [arrowhead=empty, arrowtail=none, dir=both];
+
+
+}
diff --git a/docs/source/static/style.css b/docs/source/static/style.css
new file mode 100644
index 0000000..940f785
--- /dev/null
+++ b/docs/source/static/style.css
@@ -0,0 +1,3 @@
+svg {
+ width: 100px;
+}
diff --git a/docs/source/tests.rst b/docs/source/tests.rst
deleted file mode 100644
index 965eea2..0000000
--- a/docs/source/tests.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-tests package
-=============
-
-Submodules
-----------
-
-tests.anisotropy\-cli module
-----------------------------
-
-.. automodule:: tests.anisotropy-cli
- :members:
- :undoc-members:
- :show-inheritance:
-
-tests.test\_anisotropy module
------------------------------
-
-.. automodule:: tests.test_anisotropy
- :members:
- :undoc-members:
- :show-inheritance:
-
-Module contents
----------------
-
-.. automodule:: tests
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/notes/sphinx.rst b/notes/sphinx.rst
deleted file mode 100644
index 642f90e..0000000
--- a/notes/sphinx.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-sphinx
-======
-
-.. code_block:: bash
- :lineos:
-
- sphinx-apidoc -o docs/source/ ./
- cd docs
- make html
diff --git a/requirements.txt b/requirements.txt
index f5b783a..0eb6907 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
+wheel
numpy
pyquaternion
toml