Skip to content

Commit 59fd5d0

Browse files
Add a readme.
1 parent 1c5398c commit 59fd5d0

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

README.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
Polyquad
2+
========
3+
4+
About
5+
-----
6+
7+
Polyquad is an open-source C++11 application for finding symmetric
8+
quadrature rules suitable for use with the finite element method.
9+
Both the target strength of the quadrature and the number of points
10+
are configurable. Polyquad is parallelised using MPI and can refine
11+
rules to an arbitrary degree of numerical precision.
12+
13+
Authors
14+
-------
15+
16+
See the AUTHORS file.
17+
18+
License
19+
-------
20+
21+
Polyquad is release under the GNU GPL v3.0 license. Please see
22+
COPYING for further details.
23+
24+
Dependencies
25+
------------
26+
27+
In order to build polyquad it is necessary to have first installed:
28+
29+
- [CMake](http://www.cmake.org/) 2.8;
30+
- [Eigen](http://eigen.tuxfamily.org/), preferably the current head
31+
revision;
32+
- [Boost](http://www.boost.org/), specifically
33+
- chrono
34+
- mpi (optional)
35+
- program_options
36+
- serialization
37+
- system
38+
- [MPFR](http://www.mpfr.org/) (optional)
39+
- [MPFR C++](http://www.holoborodko.com/pavel/mpfr/) (optional)
40+
41+
If Boost MPI and a suitable compiler are found then polyquad will be
42+
able to run on clusters. Similarly, if the MPFR and the corresponding
43+
C++ wrapper are available then support for refining rules to arbitrary
44+
precision will be enabled. As polyquad makes use of advanced template
45+
metaprogramming features it is important to build it using a compiler
46+
that supports the C++11 standard. As of the time of writing the
47+
following compilers are known to have successfully built polyquad:
48+
49+
- GCC 4.7, 4.8, and 4.9;
50+
- Clang 3.4;
51+
- ICC 14.
52+
53+
Building polyquad can require in excess of four gigabytes of main
54+
memory and several minutes of CPU time.
55+
56+
Building polyquad
57+
-----------------
58+
59+
After cloning the repository polyquad can be built by issuing the
60+
following commands:
61+
62+
$ mkdir build
63+
$ cd build
64+
$ cmake -G"Unix Makefiles" ../
65+
$ make
66+
67+
for further information please consult the CMake documentation and the
68+
CMakeLists.txt file.
69+
70+
Running polyquad
71+
----------------
72+
73+
Usage instructions can be obtained by running:
74+
75+
$ ./polyquad --help
76+
77+
a simple example we consider wsing polyquad to search for strength 5
78+
rules inside of a tetrahedron using 15 points:
79+
80+
$ ./polyquad find -s tet -q5 -n15 -V -p > rules.txt
81+
82+
where -V enables verbose output and -p requires all rules to have
83+
positive weights. We can then convert the rules from the internal
84+
representation used by polyquad to a standard tabular format by
85+
issuing:
86+
87+
$ ./polyquad expand -s tet -q5 < rules.txt > rules-tab.txt

0 commit comments

Comments
 (0)