Skip to content
Snippets Groups Projects
Commit d965b696 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Fix a set of typos

parent 1b0ef4cc
No related branches found
No related tags found
1 merge request!145git subrepo clone git@gitlab.com:OlMon/org-themes.git packages/org-themes
...@@ -2451,9 +2451,9 @@ The output contains also ~git~ information ...@@ -2451,9 +2451,9 @@ The output contains also ~git~ information
***** ~resetRandomSeed: void -> void~ ***** ~resetRandomSeed: void -> void~
At the start of ~pugs~, a *common* random seed is defined for all ~MPI~ At the start of ~pugs~, a *common* random seed is defined for all ~MPI~
processes. The seed is written automatically written in the preamble processes. The seed is automatically written in the preamble of the
of the listing (in the documentation the ~--no-preamble~ option is used listing (in the documentation the ~--no-preamble~ option is used this is
this is why it is not displayed in examples). why it is not displayed in examples).
The ~resetRandomSeed~ creates a *new shared* random and displays its value. The ~resetRandomSeed~ creates a *new shared* random and displays its value.
#+NAME: reset-random-seed #+NAME: reset-random-seed
...@@ -2581,14 +2581,18 @@ This is an important module. It provides mesh utilities tools. ...@@ -2581,14 +2581,18 @@ This is an important module. It provides mesh utilities tools.
The ~boundary~ type is a boundary descriptor: it refers to a boundary of The ~boundary~ type is a boundary descriptor: it refers to a boundary of
a ~mesh~ that is either designated by an integer or by a ~string~. a ~mesh~ that is either designated by an integer or by a ~string~.
A ~boundary~ can be used refer to an interface, it can designate a set A ~boundary~ can designate a set of nodes, edges or faces. The ~boundary~
of nodes, edges or faces. The ~boundary~ (descriptor) itself is not (descriptor) itself is not related to any ~mesh~, thus the nature of the
related to any ~mesh~, thus the nature of the ~boundary~ is precised when ~boundary~ is precised when it is used with a particular ~mesh~.
it is used with a particular ~mesh~.
#+BEGIN_warning
A ~boundary~ *cannot* be used to refer to an interface (/ie/ an inner set of
items)..
#+END_warning
***** ~zone~ ***** ~zone~
Following the same idea, a ~zone~ is a descriptor of set of cells. It Following the same idea, a ~zone~ is a descriptor of a set of cells. It
can be either defined by an integer or by a ~string~. Its meaning is can be either defined by an integer or by a ~string~. Its meaning is
precised when it is associated with a ~mesh~. precised when it is associated with a ~mesh~.
...@@ -2893,7 +2897,7 @@ available in parallel ...@@ -2893,7 +2897,7 @@ available in parallel
***** ~transform: mesh*function -> mesh~ ***** ~transform: mesh*function -> mesh~
This function allows to compute a new mesh as the transformation a This function allows to compute a new mesh as the transformation of a
given mesh by displacing its nodes through a user defined function. given mesh by displacing its nodes through a user defined function.
For a mesh of dimension $d$, the mesh must be a function $\mathbb{R}^d For a mesh of dimension $d$, the mesh must be a function $\mathbb{R}^d
...@@ -2914,12 +2918,14 @@ write_mesh(gnuplot_writer("transformed"), m1); ...@@ -2914,12 +2918,14 @@ write_mesh(gnuplot_writer("transformed"), m1);
#+END_SRC #+END_SRC
#+BEGIN_note #+BEGIN_note
One should keep in mind that the mesh produced the ~transform~ function One should keep in mind that the mesh produced by the ~transform~
*shares* the same connectivity than the given mesh. This means that in function *shares* the same connectivity than the given mesh. This means
~pugs~ internals, there is only one connectivity object. that in ~pugs~ internals, there is only one connectivity object for
these two meshes.
#+END_note #+END_note
The result of the previous script is given on Figure [[fig:transformed]]. The result of the previous script is given on Figure
[[fig:transformed]]. They all share the same connectivity in memory.
#+NAME: transformed-img #+NAME: transformed-img
#+BEGIN_SRC gnuplot :exports results :file (substitute-in-file-name "${PUGS_SOURCE_DIR}/doc/transformed.png") #+BEGIN_SRC gnuplot :exports results :file (substitute-in-file-name "${PUGS_SOURCE_DIR}/doc/transformed.png")
...@@ -3042,7 +3048,7 @@ The type of values in each cells for a $\mathbb{P}_0$ function can be ...@@ -3042,7 +3048,7 @@ The type of values in each cells for a $\mathbb{P}_0$ function can be
$\mathbb{R}$, $\mathbb{R}^1$, $\mathbb{R}^2$, $\mathbb{R}^3$, $\mathbb{R}$, $\mathbb{R}^1$, $\mathbb{R}^2$, $\mathbb{R}^3$,
$\mathbb{R}^{1\times1}$, $\mathbb{R}^{2\times2}$ or $\mathbb{R}^{3\times3}$. $\mathbb{R}^{1\times1}$, $\mathbb{R}^{2\times2}$ or $\mathbb{R}^{3\times3}$.
For simplicity in this document, we denote these types specific For simplicity in this document, we denote these specific
$\mathbb{P}_0$ types as $\mathbb{P}_0(\mathbb{R})$, $\mathbb{P}_0$ types as $\mathbb{P}_0(\mathbb{R})$,
$\mathbb{P}_0(\mathbb{R}^1)$, $\mathbb{P}_0(\mathbb{R}^2)$, $\mathbb{P}_0(\mathbb{R}^1)$, $\mathbb{P}_0(\mathbb{R}^2)$,
$\mathbb{P}_0(\mathbb{R}^3)$, $\mathbb{P}_0(\mathbb{R}^{1\times1})$, $\mathbb{P}_0(\mathbb{R}^3)$, $\mathbb{P}_0(\mathbb{R}^{1\times1})$,
...@@ -3330,7 +3336,7 @@ Let us give an example. ...@@ -3330,7 +3336,7 @@ Let us give an example.
let uh:Vh, uh = interpolate(m, P0(), u); let uh:Vh, uh = interpolate(m, P0(), u);
#+END_SRC #+END_SRC
In this exampel the discrete function ~uh~ is a In this example the discrete function ~uh~ is a
$\mathbb{P}_0(\mathbb{R}^3)$ function defined on a 2d ~mesh~. The ~P0()~ $\mathbb{P}_0(\mathbb{R}^3)$ function defined on a 2d ~mesh~. The ~P0()~
function returns the type of interpolation ($\mathbb{P}_0$). function returns the type of interpolation ($\mathbb{P}_0$).
...@@ -3473,7 +3479,7 @@ function as a list of user function, the previous function ...@@ -3473,7 +3479,7 @@ function as a list of user function, the previous function
****** ~integrate: mesh*(zone)*quadrature*function -> Vh~ ****** ~integrate: mesh*(zone)*quadrature*function -> Vh~
This function is an enhancement of the function defined in This function is an enhancement of the function defined in
[[integrate-classic]]. It allow to specify a ~zone~ list which defines the [[integrate-classic]]. It allows to specify a ~zone~ list which defines the
set of cells where the integration is operated. set of cells where the integration is operated.
#+BEGIN_SRC shell :exports results :results none #+BEGIN_SRC shell :exports results :results none
...@@ -3561,18 +3567,18 @@ sets of cells where to integrate the list of user functions. ...@@ -3561,18 +3567,18 @@ sets of cells where to integrate the list of user functions.
***** Random mesh generators ***** Random mesh generators
For numerical it is often useful to create meshes with random vertices For numerical tests purpose, it is often useful to create meshes with
positions. This is the aim of the functions that are described in this random vertices positions. This is the aim of the functions that are
section. These function share some properties. described in this section. These function share some properties.
- The generate mesh is always suitable for calculations in the sense - The generate mesh is always suitable for calculations in the sense
that cells volumes are warrantied to be positive. that cells volumes are warrantied to be positive.
- Generated cells can be non-convex. - Generated cells can be non-convex.
- One has to specify boundary conditions to drive the mesh - One has to specify boundary conditions to drive the mesh
displacement on boundaries. displacement on boundaries.
- The obtained mesh does not depend on parallelism: it is exactly the - The obtained mesh does not depend on parallelism: it is exactly the
same whichever is the number of ~MPI~ processes. It only depends on same whichever the number of ~MPI~ processes is. It only depends on
the random seed (see paragraph [[set-random-seed]] how to set the random the random seed (see in paragraph [[set-random-seed]] how to set the
seed to obtain the exact same mesh through different runs). random seed to obtain the exact same mesh through different runs).
****** ~randomizeMesh: mesh*(boundary_condition) -> mesh~ ****** ~randomizeMesh: mesh*(boundary_condition) -> mesh~
...@@ -3586,7 +3592,7 @@ The supported boundary conditions are the following: ...@@ -3586,7 +3592,7 @@ The supported boundary conditions are the following:
- ~symmetry~: the vertices are displaced in the plane formed by the - ~symmetry~: the vertices are displaced in the plane formed by the
~boundary~ ~boundary~
One should refer to the section [[boundary-condition-descriptor]] for a One should refer to the section [[boundary-condition-descriptor]] for a
description of the boundary condition descriptors. documentation of the boundary condition descriptors.
#+BEGIN_note #+BEGIN_note
Let us precise these boundary conditions behavior Let us precise these boundary conditions behavior
...@@ -3652,7 +3658,7 @@ Running this script one gets the ~mesh~ displayed on Figure ...@@ -3652,7 +3658,7 @@ Running this script one gets the ~mesh~ displayed on Figure
****** ~randomizeMesh: mesh*(boundary_condition)*function -> mesh~ ****** ~randomizeMesh: mesh*(boundary_condition)*function -> mesh~
This function is a variation of the previous one. It allows This function is a variation of the previous one. It allows
additionally to provide a characteristic function that designates the to additionally provide a characteristic function that designates the
vertices that can be displaced. vertices that can be displaced.
The characteristic function *must* be a function of $\mathbb{R}^d The characteristic function *must* be a function of $\mathbb{R}^d
...@@ -3719,7 +3725,7 @@ This allows for instance to build a random mesh step-by-step. ...@@ -3719,7 +3725,7 @@ This allows for instance to build a random mesh step-by-step.
***** Boundary condition descriptors <<boundary-condition-descriptor>> ***** Boundary condition descriptors <<boundary-condition-descriptor>>
In this paragraph, we describe the set of boundary condition In this paragraph, we discuss the set of boundary condition
descriptors that are provided by the ~scheme~ module. descriptors that are provided by the ~scheme~ module.
#+BEGIN_note #+BEGIN_note
...@@ -3783,8 +3789,12 @@ chosen inside the script. ...@@ -3783,8 +3789,12 @@ chosen inside the script.
#+BEGIN_warning #+BEGIN_warning
While ~pugs~ is written to deal with general polygonal and polyhedral While ~pugs~ is written to deal with general polygonal and polyhedral
meshes, quadrature formulas are not yet implemented on the general meshes, quadrature formulas are not yet implemented on the general
elements. Supported elements are triangles, quadrangles, tetrahedra elements. Supported elements are triangles, quadrangles, tetrahedra,
pyramids, prisms and hexahedra. pyramids, prisms and hexahedra.
For completeness, let us state that they are also available for
diamond cells that can be decomposed into two tetrahedra or two
pyramids.
#+END_warning #+END_warning
****** ~Gauss: N -> quadrature~ ****** ~Gauss: N -> quadrature~
...@@ -4022,7 +4032,7 @@ Additionally these operators are defined ...@@ -4022,7 +4032,7 @@ Additionally these operators are defined
\mathtt{*}: \mathbb{V}_h \times \mathbb{S}\to \mathbb{V}_h. \mathtt{*}: \mathbb{V}_h \times \mathbb{S}\to \mathbb{V}_h.
\end{equation*} \end{equation*}
#+end_src #+end_src
Following logic, if for instance the right operand is an ~R^2~ Following the logic, if for instance the right operand is an ~R^2~
expression, the left operand ~Vh~ must be of type expression, the left operand ~Vh~ must be of type
$\mathbb{P}_0(\mathbb{R})$ or $\mathbb{P}_0(\mathbb{R}^{2\times 2})$. $\mathbb{P}_0(\mathbb{R})$ or $\mathbb{P}_0(\mathbb{R}^{2\times 2})$.
...@@ -4131,7 +4141,7 @@ different. ...@@ -4131,7 +4141,7 @@ different.
***** ~writer~ ***** ~writer~
Variables of this type manage outputs: which format is used and Variables of this type manage outputs: which format is used and
eventually writing policy. This policy sets for instance the time eventually the writing policy. This policy sets for instance the time
period of for time dependent post processing. period of for time dependent post processing.
**** ~writer~ provided functions **** ~writer~ provided functions
...@@ -4270,7 +4280,7 @@ There is two ~gnuplot~ writers. One is dedicated to output of dimension ...@@ -4270,7 +4280,7 @@ There is two ~gnuplot~ writers. One is dedicated to output of dimension
dimension 1 and 2 (~gnuplot_writer~). dimension 1 and 2 (~gnuplot_writer~).
Both of these writers can be used for single output or time series Both of these writers can be used for single output or time series
output. In the case of single output, the filename is completed by outputs. In the case of single output, the filename is completed by
adding the extension ~.gnu~, in the case of time series, the filename is adding the extension ~.gnu~, in the case of time series, the filename is
extending by adding ~.abcd.gnu~, where ~abcd~ is the number of the output extending by adding ~.abcd.gnu~, where ~abcd~ is the number of the output
in the series. in the series.
...@@ -4284,11 +4294,11 @@ which is warrantied by ~pugs~ for explicit methods). ...@@ -4284,11 +4294,11 @@ which is warrantied by ~pugs~ for explicit methods).
#+END_note #+END_note
For an obvious practical reason, each ~gnuplot~ file starts with a For an obvious practical reason, each ~gnuplot~ file starts with a
preamble that indicates running information. preamble that indicates the running information.
This information contains, the production date of the file. The ~pugs~ This information contains, the production date of the file, the ~pugs~
version (including the hash key of the last commit) and a summary of version (including the hash key of the last commit) and a summary of
the output data to easy its use. For ~gnuplot~ files, this is the the output data to ease its use. For ~gnuplot~ files, this is the
location where the provided name (to the discrete function) is used. location where the provided name (to the discrete function) is used.
In the case of time series the "physical" time of output is also In the case of time series the "physical" time of output is also
...@@ -4307,9 +4317,9 @@ This writer family make only sense in 1d. ...@@ -4307,9 +4317,9 @@ This writer family make only sense in 1d.
#+BEGIN_note #+BEGIN_note
In parallel, as soon as the saved data themselves are the same, the In parallel, as soon as the saved data themselves are the same, the
~gnuplot_1d_writer~ generates *exactly* the same files since the ~gnuplot_1d_writer~ generates *exactly* the same files (whichever is the
coordinates of the post processed data are sorted according to growing number of processors) since the coordinates of the post processed data
abscissa. are sorted according to growing abscissa.
#+END_note #+END_note
******* ~gnuplot_1d_writer: string -> writer~ ******* ~gnuplot_1d_writer: string -> writer~
...@@ -4439,11 +4449,11 @@ times: ...@@ -4439,11 +4449,11 @@ times:
****** ~gnuplot_writer~ functions <<gnuplot-writer-function>> ****** ~gnuplot_writer~ functions <<gnuplot-writer-function>>
This writer differs from the previous one since it draws the cells and These writers differ from the previous ones since it draws the cells
affects the cell value to the nodes. This produces larger files but and affects the cell value to its nodes. This produces larger files
allow 2d representation. Also, if the saved data is exactly the same but allows 2d representations. Also, if the saved data is exactly the
in parallel, the order of the cells is generally different since they same in parallel, the order of the cells is generally different since
are written processor by processor. they are written processor by processor.
Additionally, this writer allows to write 2d meshes, see paragraph Additionally, this writer allows to write 2d meshes, see paragraph
[[write-mesh]]. [[write-mesh]].
...@@ -4542,9 +4552,9 @@ performance reasons. For each time step a ~pvtu~ file is generate to ...@@ -4542,9 +4552,9 @@ performance reasons. For each time step a ~pvtu~ file is generate to
handle parallelism. And for a complete time series, a ~pvd~ file is handle parallelism. And for a complete time series, a ~pvd~ file is
produced. This is the file that should be loaded. produced. This is the file that should be loaded.
Observe that each of these files (~vtu~, ~pvti~ and ~pvd~) contains a Observe that each of these files (~vtu~, ~pvtu~ and ~pvd~) contains a
comment that contains the creation date and the version of ~pugs~ that comment that stores the creation date and the version of ~pugs~ that was
was run. run.
The use is exactly the same than for ~gnuplot~ writers so we do not The use is exactly the same than for ~gnuplot~ writers so we do not
provide full examples. provide full examples.
...@@ -4566,16 +4576,16 @@ the provided ~string~. ...@@ -4566,16 +4576,16 @@ the provided ~string~.
***** ~write~, ~force_write~ and ~write_mesh~ functions ***** ~write~, ~force_write~ and ~write_mesh~ functions
One a mesh writer has been defined, these functions are called to Once a mesh writer has been defined, these functions are called to
effectively generate the post processing files. effectively generate the post processing files.
****** ~write: writer*(output) -> void~ ****** ~write: writer*(output) -> void~
As a parameter, it takes a ~writer~ that is not a time series one and a As parameters, it takes a ~writer~ that is not a time series one and a
list of ~output~ (which are named discrete functions that are defined on list of ~output~ (which are named discrete functions that are defined on
the *same* mesh). the *same* mesh).
There have already shown a lot of examples of use of the ~write~ We have already shown a lot of examples of use of the ~write~
function. So let us focus on improper calls. function. So let us focus on improper calls.
Trying to use a time series ~writer~ Trying to use a time series ~writer~
...@@ -4717,16 +4727,16 @@ The last post processing time is now 1. ...@@ -4717,16 +4727,16 @@ The last post processing time is now 1.
****** ~write_mesh: writer*mesh -> void~ <<write-mesh>>. ****** ~write_mesh: writer*mesh -> void~ <<write-mesh>>.
This function just saves a ~mesh~ using a ~writer~. The ~gnuplot_1d_writer~ This function just saves a ~mesh~ using a ~writer~. The ~gnuplot_1d_writer~
cannot write mesh. And the ~writer~ argument must not be time series cannot write mesh. And the ~writer~ argument must be a non time series
~writer~. ~writer~.
*** The ~socket~ module *** The ~socket~ module
This module is more dedicated to developers that intend to drive ~pugs~ This module is more dedicated to developers that intend to couple ~pugs~
or to couple it to other codes using sockets. to other codes using sockets.
We describe here language utilities that can be useful but effective We describe here language utilities that can be useful, but effective
coupling generally requires ~C++~ coding. coupling generally requires ~C++~ coding.
Here is the list of the functions and types that the module provides. Here is the list of the functions and types that the module provides.
...@@ -4758,7 +4768,7 @@ For instance running the following code ...@@ -4758,7 +4768,7 @@ For instance running the following code
#+END_SRC #+END_SRC
gives gives
#+RESULTS: print-socket #+RESULTS: print-socket
The output uses the classical format: ~machine_nam:port_number~. The output uses the classical format: ~machine_name:port_number~.
**** ~socket~ provided functions **** ~socket~ provided functions
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment