MFEM
v3.2
Finite element discretization library
|
#include <blockvector.hpp>
Public Member Functions | |
BlockVector () | |
empty constructor More... | |
BlockVector (const Array< int > &bOffsets) | |
Constructor. More... | |
BlockVector (const BlockVector &block) | |
Copy constructor. More... | |
BlockVector (double *data, const Array< int > &bOffsets) | |
View constructor. More... | |
BlockVector & | operator= (const BlockVector &original) |
Assignment operator. this and original must have the same block structure. More... | |
BlockVector & | operator= (double val) |
Set each entry of this equal to val. More... | |
~BlockVector () | |
Destructor. More... | |
Vector & | GetBlock (int i) |
Get the i-th vector in the block. More... | |
const Vector & | GetBlock (int i) const |
Get the i-th vector in the block (const version). More... | |
void | GetBlockView (int i, Vector &blockView) |
Get the i-th vector in the block. More... | |
int | BlockSize (int i) |
void | Update (double *data, const Array< int > &bOffsets) |
Update method. More... | |
Public Member Functions inherited from mfem::Vector | |
Vector () | |
Default constructor for Vector. Sets size = 0 and data = NULL. More... | |
Vector (const Vector &) | |
Copy constructor. More... | |
Vector (int s) | |
Creates vector of size s. More... | |
Vector (double *_data, int _size) | |
Creates a vector referencing an array of doubles, owned by someone else. More... | |
void | Load (std::istream **in, int np, int *dim) |
Reads a vector from multiple files. More... | |
void | Load (std::istream &in, int Size) |
Load a vector from an input stream. More... | |
void | Load (std::istream &in) |
Load a vector from an input stream. More... | |
void | SetSize (int s) |
Resize the vector if the new size is different. More... | |
void | SetData (double *d) |
void | SetDataAndSize (double *d, int s) |
void | NewDataAndSize (double *d, int s) |
void | MakeDataOwner () |
void | Destroy () |
Destroy a vector. More... | |
int | Size () const |
Returns the size of the vector. More... | |
double * | GetData () const |
operator double * () | |
operator const double * () const | |
bool | OwnsData () const |
void | StealData (double **p) |
Changes the ownership of the data; after the call the Vector is empty. More... | |
double * | StealData () |
Changes the ownership of the data; after the call the Vector is empty. More... | |
double & | Elem (int i) |
Sets value in vector. Index i = 0 .. size-1. More... | |
const double & | Elem (int i) const |
Sets value in vector. Index i = 0 .. size-1. More... | |
double & | operator() (int i) |
Sets value in vector. Index i = 0 .. size-1. More... | |
const double & | operator() (int i) const |
Sets value in vector. Index i = 0 .. size-1. More... | |
double | operator* (const double *) const |
double | operator* (const Vector &v) const |
Return the inner-product. More... | |
Vector & | operator= (const double *v) |
Vector & | operator= (const Vector &v) |
Redefine '=' for vector = vector. More... | |
Vector & | operator= (double value) |
Redefine '=' for vector = constant. More... | |
Vector & | operator*= (double c) |
Vector & | operator/= (double c) |
Vector & | operator-= (double c) |
Vector & | operator-= (const Vector &v) |
Vector & | operator+= (const Vector &v) |
Vector & | Add (const double a, const Vector &Va) |
(*this) += a * Va More... | |
Vector & | Set (const double a, const Vector &x) |
(*this) = a * x More... | |
void | SetVector (const Vector &v, int offset) |
void | Neg () |
(*this) = -(*this) More... | |
void | Swap (Vector &other) |
Swap the contents of two Vectors. More... | |
void | median (const Vector &lo, const Vector &hi) |
v = median(v,lo,hi) entrywise. Implementation assumes lo <= hi. More... | |
void | GetSubVector (const Array< int > &dofs, Vector &elemvect) const |
void | GetSubVector (const Array< int > &dofs, double *elem_data) const |
void | SetSubVector (const Array< int > &dofs, const Vector &elemvect) |
void | SetSubVector (const Array< int > &dofs, double *elem_data) |
void | AddElementVector (const Array< int > &dofs, const Vector &elemvect) |
Add (element) subvector to the vector. More... | |
void | AddElementVector (const Array< int > &dofs, double *elem_data) |
void | AddElementVector (const Array< int > &dofs, const double a, const Vector &elemvect) |
void | SetSubVectorComplement (const Array< int > &dofs, const double val) |
Set all vector entries NOT in the 'dofs' array to the given 'val'. More... | |
void | Print (std::ostream &out=std::cout, int width=8) const |
Prints vector to stream out. More... | |
void | Print_HYPRE (std::ostream &out) const |
Prints vector to stream out in HYPRE_Vector format. More... | |
void | Randomize (int seed=0) |
Set random values in the vector. More... | |
double | Norml2 () const |
Returns the l2 norm of the vector. More... | |
double | Normlinf () const |
Returns the l_infinity norm of the vector. More... | |
double | Norml1 () const |
Returns the l_1 norm of the vector. More... | |
double | Normlp (double p) const |
Returns the l_p norm of the vector. More... | |
double | Max () const |
Returns the maximal element of the vector. More... | |
double | Min () const |
Returns the minimal element of the vector. More... | |
double | Sum () const |
Return the sum of the vector entries. More... | |
double | DistanceTo (const double *p) const |
Compute the Euclidean distance to another vector. More... | |
int | CheckFinite () const |
virtual | ~Vector () |
Destroys vector. More... | |
Protected Attributes | |
int | numBlocks |
Number of blocks in the blockVector. More... | |
const int * | blockOffsets |
Offset for each block start. (length numBlocks+1) More... | |
Array< Vector * > | tmp_block |
array of Vector objects used to extract blocks without allocating memory. More... | |
Protected Attributes inherited from mfem::Vector | |
int | size |
int | allocsize |
double * | data |
Definition at line 29 of file blockvector.hpp.
mfem::BlockVector::BlockVector | ( | ) |
empty constructor
Definition at line 19 of file blockvector.cpp.
mfem::BlockVector::BlockVector | ( | const Array< int > & | bOffsets | ) |
Constructor.
Standard constructor.
bOffsets is an array of integers (length nBlocks+1) that tells the offsets of each block start.
Definition at line 29 of file blockvector.cpp.
mfem::BlockVector::BlockVector | ( | const BlockVector & | block | ) |
Copy constructor.
Definition at line 43 of file blockvector.cpp.
mfem::BlockVector::BlockVector | ( | double * | data, |
const Array< int > & | bOffsets | ||
) |
View constructor.
Definition at line 57 of file blockvector.cpp.
mfem::BlockVector::~BlockVector | ( | ) |
Destructor.
Definition at line 118 of file blockvector.cpp.
|
inline |
Definition at line 82 of file blockvector.hpp.
Vector & mfem::BlockVector::GetBlock | ( | int | i | ) |
Get the i-th vector in the block.
Definition at line 126 of file blockvector.cpp.
const Vector & mfem::BlockVector::GetBlock | ( | int | i | ) | const |
Get the i-th vector in the block (const version).
Definition at line 133 of file blockvector.cpp.
void mfem::BlockVector::GetBlockView | ( | int | i, |
Vector & | blockView | ||
) |
Get the i-th vector in the block.
Definition at line 140 of file blockvector.cpp.
BlockVector & mfem::BlockVector::operator= | ( | const BlockVector & | original | ) |
Assignment operator. this and original must have the same block structure.
Definition at line 90 of file blockvector.cpp.
BlockVector & mfem::BlockVector::operator= | ( | double | val | ) |
Set each entry of this equal to val.
Definition at line 111 of file blockvector.cpp.
void mfem::BlockVector::Update | ( | double * | data, |
const Array< int > & | bOffsets | ||
) |
Update method.
data is an array of double of length at least blockOffsets[numBlocks] that contain all the values of the monolithic vector. bOffsets is an array of integers (length nBlocks+1) that tells the offsets of each block start. nBlocks is the number of blocks.
Definition at line 70 of file blockvector.cpp.
|
protected |
Offset for each block start. (length numBlocks+1)
blockOffsets[i+1] - blockOffsets[i] is the size of block i.
Definition at line 39 of file blockvector.hpp.
|
protected |
Number of blocks in the blockVector.
Definition at line 34 of file blockvector.hpp.
array of Vector objects used to extract blocks without allocating memory.
Definition at line 41 of file blockvector.hpp.