|
| PETScMat (const Space< Real > &spcX, const Space< Real > &spcY) |
|
| PETScMat (const Space< Real > &spc, BilinearForm< Real, Real > &bf) |
|
| PETScMat (const SparseMatrix< Real > &matrix) |
| Constructor. Copies the matrix from matrix .
|
|
virtual void | operator() (const Function< double > &fncY, Function< double > &fncX) |
|
virtual void | operator() (const Function< std::complex< double > > &fncY, Function< std::complex< double > > &fncX) |
|
void | operator() (const Vector< double > &fncY, Vector< double > &fncX) |
|
virtual void | transpMult (const Vector< double > &fncY, Vector< double > &fncX) |
|
virtual void | transpMult (const Vector< std::complex< double > > &fncY, Vector< std::complex< double > > &fncX) |
|
virtual Real | operator() (const uint i, const uint j) const |
| Returns entry with indices i and j .
|
|
virtual Real & | operator() (const uint i, const uint j) |
|
virtual const Space< double > & | spaceX () const |
|
virtual const Space< double > & | spaceY () const |
|
| operator Mat () |
| Conversion operator. Returns the PETSc matrix.
|
|
void | storeMatlab (const char *name) const |
|
const uint | nofRows () const |
| Number of rows.
|
|
const uint | nofCols () const |
| Number of columns.
|
|
iterator | begin (uint r=0) |
|
const_iterator | begin (uint r=0) const |
|
iterator | end () |
| Iterator, standing behind last element.
|
|
const_iterator | end () const |
| Constant iterator, standing behind last element.
|
|
virtual void | set (const uint i, const uint j, const Real value, const bool use_threshold=false, const Real threshold_value=1e-8) |
|
virtual void | add (const uint i, const uint j, const Real value, const bool use_threshold=false, const Real threshold_value=1e-8) |
|
virtual void | operator() (const Function< r_type > &fncY, Function< Real > &fncX)=0 |
| Computes fncX = A(fncY ) where A is this matrix.
|
|
virtual void | operator() (const Function< c_type > &fncY, Function< c_type > &fncX)=0 |
|
virtual void | operator() (const Function< r_type > &fncY, Function< F > &fncX) |
|
virtual void | operator() () |
|
virtual bool | operator== (const Matrix< Real > &otherMat) const |
|
virtual void | transpMult (const Vector< r_type > &fncY, Vector< Real > &fncX)=0 |
| Computes fncX = AT fncY where A is this matrix.
|
|
virtual void | transpMult (const Vector< c_type > &fncY, Vector< c_type > &fncX)=0 |
|
virtual const uint | dimX () const |
|
virtual const uint | dimY () const |
|
virtual void | show_messages () |
|
|
static void | assembly (Matrix< Real > &dest, const Space< G > &spc, const BilinearForm< Real, G > &bf, const Real threshold=0.0) |
|
static void | assembly (Matrix< Real > &dest, Scan< Element< G > > *sc, const BilinearForm< Real, G > &bf, const Real threshold=0.0) |
|
static void | assembly (Matrix< Real > &dest, const Sequence< ElementWithCell< G > * > seq, const BilinearForm< Real, G > &bf, const Real threshold=0.0) |
|
static void | assembly (Matrix< Real > &dest, const Space< G > &spc, const Sequence< bool > &seq, const BilinearForm< Real, G > &bf, const Real threshold=0.0) |
|
static void | assembly (Matrix< Real > &dest, const Space< G > &spcX, const Space< G > &spcY, const BilinearForm< Real, G > &bf, const Real threshold=0.0, const bool single=false) |
|
static void | assembly (Matrix< Real > &dest, const Sequence< ElementWithCell< G > * > seqX, const Space< G > &spcY, const BilinearForm< Real, G > &bf, const Real threshold=0.0) |
|
static void | assembly (Matrix< Real > &dest, const BilinearForm< Real, G > &bf, const ElementPairList< G > &pairs) |
|
static void | assembly (Matrix< Real > &dest, const Space< G > &spcX, const Space< G > &spcY, const Sequence< bool > &seq, const BilinearForm< Real, G > &bf, const Real threshold=0.0, const bool single=false) |
|
|
These functions are used to get timings from class internal computations. The values are stored in a user defined concepts::InOutParameters structure in different arrays (see setTimings ). These arrays can be grouped into a table for easier postprocessing with
table.addMap(concepts::ResultsTable::DOUBLE, "jacobian", output);
table.addMap(concepts::ResultsTable::DOUBLE, "whole_sumfact", output);
std::ofstream ofs( "table.gnuplot");
ofs << std::setprecision(20);
table.print<concepts::ResultsTable::GNUPLOT>( ofs);
Set< F > makeSet(uint n, const F &first,...)
|
static void | setTimings (InOutParameters *timings) |
|
static bool | timings () |
|
Interface to the sparse matrices from PETSc. Very usefull if you intend to use PETSc to solve your systems since this makes it possible to use the preconditioners of PETSc.
It is not possible tough, to combine different PETSc matrices. If you want to compute a linear combination of bilinear forms, then insert the linear combination of the bilinear forms into the constructor.
PETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication.
Our interface to PETSc uses only its serial capablities.
- See also
- PETSc solvers in Concepts
-
documentation of PETSc on matrices
-
Satish Balay, Kris Buschelman, William D. Gropp, Dinesh Kaushik, Lois Curfman McInnes, and Barry F. Smith, PETSc home page, 2001.
-
Satish Balay, William D. Gropp, Lois Curfman McInnes, and Barry F. Smith. Efficient Management of Parallelism in Object Oriented Numerical Software Libraries. In E. Arge, A. M. Bruaset, and H. P. Langtangen, editors, Modern Software Tools in Scientific Computing, pages 163-202. Birkhauser Press, 1997.
-
Satish Balay, William D. Gropp, Lois Curfman McInnes, and Barry F. Smith. PETSc Users Manual. Technical Report ANL-95/11 - Revision 2.1.0, Argonne National Laboratory, 2001.
- Author
- Philipp Frauenfelder, 2001
- Examples
- hpFEM2d.cc.
Definition at line 148 of file PETSc.hh.
Application operator for complex function fncY
.
Computes fncX
= A(fncY
) where A is this operator. fncX
becomes complex.
In derived classes its enough to implement the operator() for complex Operator's. If a real counterpart is not implemented, the function fncY
is splitted into real and imaginary part and the application operator for real functions is called for each. Then the result is combined.
If in a derived class the operator() for complex Operator's is not implemented, a exception is thrown from here.
Reimplemented from concepts::Operator< F >.
Application operator for real function fncY
.
Computes fncX
= A(fncY
) where A is this operator.
fncX
becomes the type of the operator, for real data it becomes real, for complex data it becomes complex.
In derived classes its enough to implement the operator() for real Operator's. If a complex counterpart is not implemented, the function fncY
is transformed to a complex function and then the application operator for complex functions is called.
If in a derived class the operator() for real Operator's is not implemented, a exception is thrown from here.
Reimplemented in aglowav::C2W< F >, aglowav2::C2W< F >, aglowav::W2C< F >, aglowav2::W2C< F >, aglowav::C2_tl2< F >, aglowav::C2tl2< F >, aglowav::CGt2< F >, aglowav::ComposeN< F >, aglowav2::Operator00< F >, bem::D< F >, bem::D_1< F >, concepts::TrivExtendRestrict< F >, sparseqr::GivensRotations< F >, vectorial::BlockOperator< F >, concepts::TrivExtendRestrict< Real >, sparseqr::GivensRotations< Real >, concepts::AfterIteration< F >, concepts::Compose< F, H >, concepts::DDSolver< F, G >, concepts::Multiple< F >, concepts::LiCoI< F >, concepts::LiCo< F >, concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::Permutation< F >, concepts::Matrix< F >, concepts::Matrix< F::type >, and concepts::DiagonalSolver< F >.