Skip to content

Commit 6939367

Browse files
authored
Release 1.7.3 (#1096)
* STACK: update stack commit to revert zoltan changes as that was not the problem * MAINT: update version number in .py files for release * FIX/ADD: add back Doxyfile * MAINT: update version number in Doxyfile from 1.7.2dev to 1.7.3 * FIX/ADD: add back .rst files for documentation * FIX/ADD: add back proteus images for documentation * TST: added decorator to dambreak_solver_options test to skip * MAINT: remove xtensor script, update stack to get xtensor, remove xtensor script call in .travis.yaml * STACK: test fix for travis failure regarding xtensor and numpy * STACK: update to get xtensor-python compilation fixes
1 parent 372c503 commit 6939367

File tree

12 files changed

+3306
-19
lines changed

12 files changed

+3306
-19
lines changed

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ jobs:
3232
env: TEST_PROFILE="proteus-hashdist"
3333
install:
3434
- git lfs pull
35-
- ./get_xtensor.sh
3635
- ./stack/hit/bin/hit init-home
3736
- ./stack/hit/bin/hit remote add http://levant.hrwallingford.com/hashdist_src --objects="source"
3837
- ./stack/hit/bin/hit remote add http://levant.hrwallingford.com/hashdist_ubuntu_16_04 --objects="build"

docs/Doxyfile

Lines changed: 2424 additions & 0 deletions
Large diffs are not rendered by default.

docs/source/_static/proteus.pdf

52.1 KB
Binary file not shown.

docs/source/_static/proteus.png

Lines changed: 3 additions & 0 deletions
Loading
156 KB
Binary file not shown.

docs/source/index.rst

Lines changed: 327 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,327 @@
1+
.. Proteus documentation master file. This file generates the Proteus homepage (index.html) and serves as the root of the toctree
2+
3+
.. _intro-sec:
4+
5+
Introduction
6+
============
7+
8+
Proteus is a Python package for rapidly developing computer models and
9+
numerical methods. It is focused on models of continuum mechanical
10+
processes described by partial differential equations and on
11+
discretizations and solvers for computing approximate solutions to
12+
these equations. Proteus consists of a collection of Python modules
13+
and scripts. Proteus also uses several C, C++, and Fortran libraries,
14+
which are either external open source packages or part of Proteus, and
15+
several open source Python packages.
16+
17+
The design of Proteus is organized around two goals:
18+
19+
* Make it easy to solve new model equations with existing numerical methods
20+
* Make it easy to solve existing model equations with new numerical methods
21+
22+
We want to improve the development process for models *and*
23+
methods. Proteus is not intended to be an expert system for solving
24+
partial differential equations. In fact, effective numerical methods
25+
are often physics-based. Nevertheless many physical models are
26+
mathematically represented by the same small set of differential
27+
operators, and effective numerical methods can be developed with minor
28+
adjustments to existing methods. The problem with much existing
29+
software is that the physics and numerics are completely intertwined,
30+
which makes it difficult to extend (and maintain). In Proteus the
31+
description of the physical model and initial-boundary value problems
32+
are nearly "method agnostic". This approach has been used in the
33+
developement of a variety of mathematical models and numerical
34+
methods, both of which are described in more detail below
35+
(:ref:`capabilities-sec`).
36+
37+
.. _obtaining-sec:
38+
39+
Obtaining and Installing Proteus
40+
================================
41+
42+
For learning and experimenting there is a
43+
`Docker image <https://cloud.docker.com/u/erdc/repository/docker/erdc/proteus>`_.
44+
Proteus can be installed through conda with:::
45+
46+
% conda install proteus -c conda-forge
47+
48+
Proteus is available as source from our public
49+
`GitHub <https://github.com/erdc/proteus>`_
50+
repository. For a development installation, the installation of
51+
dependencies and the compilation of Proteus from source is done with:::
52+
53+
% git clone https://github.com/erdc/proteus
54+
% cd proteus
55+
% conda env create -f environment-dev.yml
56+
% conda activate proteus-dev
57+
% pip install -v -e .
58+
59+
Alternatively, if you already have compilers (C,C++, and Fortran!)
60+
installed on your system, you can install Proteus through hashdist
61+
with the following commands:::
62+
63+
% git clone https://github.com/erdc/proteus
64+
% cd proteus
65+
% make develop
66+
% make test
67+
68+
More information is available on our `Wiki <https://github.com/erdc/proteus/wiki>`_, and you can ask for help on
69+
the `Developers' Mailing List <https://groups.google.com/forum/#!forum/proteus-dev>`_.
70+
71+
.. _running-sec:
72+
73+
Running
74+
=======
75+
76+
If you have successfully compiled and tested Proteus then you should be able to do::
77+
78+
% cd $PROTEUS/tests/ci
79+
% $PROTEUS_PREFIX/bin/parun poisson_3d_p.py poisson_3d_c0p1_n.py
80+
81+
The solution will be saved in a file ending in .xmf, which can be
82+
opened with ParaView or Ensight.
83+
84+
.. _capabilities-sec:
85+
86+
Capabilities
87+
============
88+
89+
Test problems and some analytical solutions have been implemented for
90+
91+
* Poisson's equation
92+
* The heat equation
93+
* Linear advection-diffusion-reaction equations
94+
* Singly degenerate nonlinear advection-diffusion-reaction equations (including various forms of Burger's equation)
95+
* Doubly degenerate nonlinear advection-diffusion-reaction equations
96+
* The eikonal (signed distance) equation
97+
* The diffusive wave equations for overland flow
98+
* 1D and 2D Shallow Water Equations
99+
* 2D Dispersive Shallow Water Equations
100+
* Richards' equation (mass conservative head- and saturation-based)
101+
* Two-phase flow in porous media with diffuse interface (fully coupled and IMPES formulations)
102+
* Two-phase flow in porous media with a sharp interface (level set formulation)
103+
* Stokes equations
104+
* Navier-Stokes equations
105+
* Reynolds-Averged Navier-Stokes equations
106+
* Two-phase Stokes/Navier-Stokes/RANS flow with a sharp interface (level set/VOF formulation)
107+
* Linear elasticity
108+
109+
These problems are solved on unstructured simplicial meshes. Simple
110+
meshes can be generated with tools included with Proteus, and more
111+
complex meshes can by imported from other mesh generators. The finite
112+
elements implemented are
113+
114+
Classical methods with various types of stabilization (entropy viscosity, variational multiscale, and algebraic methods)
115+
116+
* :math:`C_0 P_1`
117+
* :math:`C_0 P_2`
118+
* :math:`C_0 Q_1`
119+
* :math:`C_0 Q_2`
120+
121+
Discontinuous Galerkin methods
122+
123+
* :math:`C_{-1} P_0`
124+
* :math:`C_{-1} P_1` (Lagrange Basis)
125+
* :math:`C_{-1} P_2` (Lagrange Basis)
126+
* :math:`C_{-1} P_k` (Monomial Basis)
127+
128+
Non-conforming and mixed methods
129+
130+
* :math:`P_1` non-conforming
131+
* :math:`C_0 P_1 C_0 P_2` Taylor-Hood
132+
133+
The time integration methods are
134+
135+
* Backward Euler
136+
* Forward Euler
137+
* :math:`\Theta` Methods
138+
* Strong Stability Preserving Runge-Kutta Methods
139+
* Adaptive BDF Methods
140+
* Pseudo-transient continuation
141+
142+
The linear solvers are
143+
144+
* Jacobi
145+
* Gauss-Seidel
146+
* Alternating Schwarz
147+
* Full Multigrid
148+
* Wrappers to LAPACK, SuperLU, and PETSc
149+
150+
The nonlinear solvers are
151+
152+
* Jacobi
153+
* Gauss-Seidel
154+
* Alternating Schwarz
155+
* Newton's method
156+
* Nonlinear Multigrid (Full Approximation Scheme)
157+
* Fast Marching and Fast Sweeping
158+
159+
Additional tools are included for pre- and post-processings meshes and
160+
solutions files generated by Proteus and other models, including methods for
161+
obtaining locally-conservative velocity fields from :math:`C_0` finite
162+
elements.
163+
164+
.. _release-sec:
165+
166+
Release Policy
167+
==============
168+
169+
The releases are numbered major.minor.revision
170+
171+
* A revision increment indicates a bug fix or extension that shouldn't break any models working with the same major.minor number.
172+
* A minor increment introduces significant new functionality but is mostly backward compatible
173+
* A major increment may require changes to input files and significantly change the underlying Proteus implementation.
174+
175+
These are not hard and fast rules, and there is no time table for releases.
176+
177+
References
178+
==========
179+
180+
* `Robust explicit relaxation technique for solving the Green-Naghdi equations
181+
<https://doi.org/10.1016/j.jcp.2019.108917>`_ (2019) J.-L. Guermond,
182+
B. Popov, E. Tovar, C.E. Kees, *Journal of Computational Physics*
183+
* `An Unstructured Finite Element Model for Incompressible Two-Phase
184+
Flow Based on a Monolithic Conservative Level Set Method
185+
<https://arxiv.org/abs/1903.06919>`_
186+
(2019) M. Quezada de Luna, J. H. Collins, and C.E. Kees.
187+
* Preconditioners for Two-Phase Incompressible Navier-Stokes
188+
Flow (2019) N. Bootland, C.E. Kees, A. Wathen,
189+
A. Bentley *SIAM Journal on Scientific Computing*, In Press.
190+
* `Modeling Sediment Transport in Three-Phase Surface Water Systems
191+
<https://doi.org/10.1080/00221686.2019.1581673>`_ (2019)
192+
C.T. Miller, W.G. Gray, C.E. Kees, I.V. Rybak, B.J. Shepherd,
193+
*Journal of Hydraulic Engineering*
194+
* `Fast Random Wave Generation in Numerical Tanks
195+
<https://doi.org/10.1680/jencm.17.00016>`_ (2019) A. Dimakopoulos, T. de
196+
Lataillade, C.E. Kees, *Proceedings of the Institution of Civil
197+
Engineers - Engineering and Computational Mechanics*, 1-29.
198+
* `A Partition of Unity Approach to Adaptivity and Limiting in
199+
Continuous Finite Element Methods
200+
<https://doi.org/10.1016/j.camwa.2019.03.021>`_ (2019) D. Kuzmin, M. Quezada
201+
de Luna, C.E. Kees, *Computers and Mathematics with Applications*.
202+
* `Simulating Oscillatory and Sliding Displacements of Caisson
203+
Breakwaters Using a Coupled Approach
204+
<https://doi.org/10.1061/(ASCE)WW.1943-5460.0000504>`_ (2019) G. Cozzuto,
205+
A. Dimakopoulos, T. de Lataillade, P.O. Morillas, and C.E. Kees,
206+
*Journal of Waterway, Port, Coastal, and Ocean Engineering*.
207+
* `A Monolithic Conservative Level Set Method with Built-In
208+
Redistancing
209+
<https://doi.org/10.1016/j.jcp.2018.11.044>`_ (2019) M. Quezada de
210+
Luna, D. Kuzmin, C.E. Kees, *Journal of Computational Physics*, 379,
211+
262-278.
212+
* `Computational Model for Wave Attenuation by Flexible Vegetation
213+
<https://doi.org/10.1061/(ASCE)WW.1943-5460.0000487>`_ (2018)
214+
S.A. Mattis, C.E. Kees, M.V. Wei, A. Dimakopoulos, and C.N. Dawson,
215+
*Journal of Waterway, Port, Coastal, and Ocean Engineering* 145(1),
216+
p.04018033.
217+
* `Well-Balanced Second-Order Finite Element Approximation of the
218+
Shallow Water Equations with Friction
219+
<https://doi.org/10.1137/17M1156162>`_ (2018) J.L. Guermond, M.Q. de
220+
Luna, B. Popov, C.E. Kees, and M.W. Farthing *SIAM Journal on
221+
Scientific Computing* 40(6), A3873-A3901.
222+
* `Dual-Scale Galerkin Methods for Darcy Flow
223+
<https://doi.org/10.1016/j.jcp.2017.10.047>`_ (2018) G. Wang, G. Scovazzi, L. Nouveau,
224+
C.E. Kees, Simone Rossi, O. Colomes, and A. Main (2018) *Journal of
225+
Computational Physics* 354, 111-134.
226+
* `Implementation details of the level set two-phase Navier-Stokes
227+
equations in Proteus
228+
<https://www.clemson.edu/science/departments/math-stat/documents/technical-reports/TR2017_10_ab.nb.aw.ck.pdf>`_ (2017) A. Bentley, N. Bootland, A. Wathen, C. Kees,
229+
*Technical-Report-TR2017-10-ab.nb.aw.ck*.
230+
* `Evaluation of Galerkin and Petrov-Galerkin Model Reduction for
231+
Finite Element Approximations of the Shallow Water Equations
232+
<https://doi.org/10.1016/j.cma.2017.01.027>`_ (2017) A. Lozovsky, M. W. Farthing,
233+
and C.E. Kees, *Computational Methods in Applied Mechanics and
234+
Engineering* 318, 537-571.
235+
* `POD-Based Model Reduction for Stabilized Finite Element
236+
Approximations of Shallow Water Flows
237+
<https://doi.org/10.1016/j.cam.2016.01.029>`_ (2016) A. Lozovskiy,
238+
M.W. Farthing, C.E. Kees, E. Gildin *Journal of Computational and
239+
Applied Mathematics*, 302, 50-70.
240+
* `An Immersed Structure Approach for Fluid-Vegetation Interaction
241+
<https://doi.org/10.1016/j.advwatres.2015.02.014>`_ (2015)
242+
S.A. Mattis, C.N. Dawson, C.E. Kees, M.W. Farthing, *Advances in
243+
Water Resources*, 80,1-16.
244+
* `Finite Element Methods for Variable Density Flow And Solute
245+
Transport <https://doi.org/10.1007/s10596-012-9330-2>`_ (2013)
246+
T.J. Povich, C.N. Dawson, M.W. Farthing, C.E. Kees *Computational
247+
Geosciences* 17(3), 529-549.
248+
* `Numerical simulation of water resources problems: Models, methods,
249+
and trends
250+
<https://doi.org/10.1016/j.advwatres.2012.05.008>`_ (2013)
251+
Cass T. Miller, Clint N. Dawson, Matthew W. Farthing, Thomas Y. Hou,
252+
Jingfang Huang, Christopher E. Kees, C.T. Kelley, and Hans Petter
253+
Langtangen *Advances in Water Resources*, 51, 405-437,
254+
* `Numerical modeling of drag for flow through vegetated domains and
255+
porous structures
256+
<http://dx.doi.org/10.1016/j.advwatres.2012.01.002>`_ (2012)
257+
S.A. Mattis, C. N. Dawson, C. E. Kees, and M. W. Farthing, *Advances
258+
in Water Resources*, 39, pp44-59
259+
* `Parallel Computational Methods and Simulation for Coastal and
260+
Hydraulic Applications Using the Proteus Toolkit
261+
<http://www.dlr.de/sc/en/Portaldata/15/Resources/dokumente/pyhpc2011/submissions/pyhpc2011_submission_11.pdf>`_
262+
(2011) C. E. Kees and M. W. Farthing (2011) *Supercomputing11:
263+
Proceedings of the PyHPC11 Workshop*
264+
* `A Conservative Level Set Method for Variable-Order Approximations
265+
and Unstructured Meshes
266+
<http://dx.doi.org/10.1016/j.jcp.2011.02.030>`_ (2011) C.E. Kees,
267+
I. Akkerman, Y. Bazilevs, and M. W. Farthing *Journal of
268+
Computational Physics* 230(12), pp4536–4558
269+
* `Locally Conservative, Stabilized Finite Element Methods For
270+
Variably Saturated Flow
271+
<http://dx.doi.org/10.1016/j.cma.2008.06.005>`_ (2008) Kees, C.E.,
272+
M. W. Farthing, and C. N. Dawson, *Computer Methods in Applied
273+
Mechanics and Engineering*, 197, pp4610-4625
274+
* `Locally Conservative, Stabilized Finite Element Methods for a Class
275+
of Variable Coefficient Navier-Stokes Equations
276+
<http://chl.erdc.usace.army.mil/ERDC-CHL-TR-09-12>`_ (2009)
277+
C. E. Kees, M. W. Farthing, and M. T. Fong, *ERDC/CHL TR-09-12*
278+
* `Evaluating Finite Element Methods for the Level Set Equation
279+
<http://chl.erdc.usace.army.mil/ERDC-CHL-TR-09-11>`_ (2009)
280+
M. W. Farthing and C. E. Kees, *ERDC/CHL TR-09-11*
281+
* `A Review of Methods for Moving Boundary Problems
282+
<http://chl.erdc.usace.army.mil/ERDC-CHL-TR-09-10>`_ (2009)
283+
C. E. Kees, M. W. Farthing, T. C. Lackey, and R. C. Berger,
284+
*ERDC/CHL TR-09-10*
285+
* `Implementation of Discontinuous Galerkin Methods for the Level Set
286+
Equation on Unstructured Meshes
287+
<http://chl.erdc.usace.army.mil/library/publications/chetn/pdf/chetn-xiii-2.pdf>`_
288+
(2008) M. W. Farthing and C. E. Kees, *ERDC/CHL CHETN-XIII-2*
289+
290+
Indices and tables
291+
==================
292+
293+
* :ref:`genindex`
294+
* :ref:`modindex`
295+
* :ref:`search`
296+
297+
Source Code Documentation
298+
=========================
299+
300+
.. toctree::
301+
:maxdepth: 1
302+
:caption: General
303+
:name: sec-general
304+
305+
API docs <apicapi>
306+
307+
.. toctree::
308+
:maxdepth: 1
309+
:caption: Tools
310+
:name: sec-tools
311+
312+
tools/boundary_conditions
313+
tools/spatial_tools
314+
tools/two_phase_flow
315+
tools/wave_tools
316+
317+
.. toctree::
318+
:maxdepth: 1
319+
:caption: Models
320+
:name: sec-models
321+
322+
models/body_dynamics
323+
models/free_surface
324+
models/mesh_adaptivity
325+
models/mesh_motion
326+
models/navier_stokes
327+
models/SWFlows

0 commit comments

Comments
 (0)