MFEM
v3.1
Finite element discretization library
|
#include <vector.hpp>
Public Member Functions | |
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) |
Resizes 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 | size |
int | allocsize |
double * | data |
Friends | |
void | add (const Vector &v1, const Vector &v2, Vector &v) |
Do v = v1 + v2. More... | |
void | add (const Vector &v1, double alpha, const Vector &v2, Vector &v) |
Do v = v1 + alpha * v2. More... | |
void | add (const double a, const Vector &x, const Vector &y, Vector &z) |
z = a * (x + y) More... | |
void | add (const double a, const Vector &x, const double b, const Vector &y, Vector &z) |
z = a * x + b * y More... | |
void | subtract (const Vector &v1, const Vector &v2, Vector &v) |
Do v = v1 - v2. More... | |
void | subtract (const double a, const Vector &x, const Vector &y, Vector &z) |
z = a * (x - y) More... | |
Vector data type.
Definition at line 33 of file vector.hpp.
|
inline |
Default constructor for Vector. Sets size = 0 and data = NULL.
Definition at line 43 of file vector.hpp.
mfem::Vector::Vector | ( | const Vector & | v | ) |
Copy constructor.
Definition at line 26 of file vector.cpp.
|
inlineexplicit |
Creates vector of size s.
Definition at line 245 of file vector.hpp.
|
inline |
Creates a vector referencing an array of doubles, owned by someone else.
Definition at line 52 of file vector.hpp.
|
inlinevirtual |
Destroys vector.
Definition at line 317 of file vector.hpp.
(*this) += a * Va
Definition at line 200 of file vector.cpp.
Add (element) subvector to the vector.
Definition at line 527 of file vector.cpp.
void mfem::Vector::AddElementVector | ( | const Array< int > & | dofs, |
double * | elem_data | ||
) |
Definition at line 542 of file vector.cpp.
void mfem::Vector::AddElementVector | ( | const Array< int > & | dofs, |
const double | a, | ||
const Vector & | elemvect | ||
) |
Definition at line 559 of file vector.cpp.
|
inline |
Count the number of entries in the Vector for which isfinite is false, i.e. the entry is a NaN or +/-Inf.
Definition at line 217 of file vector.hpp.
|
inline |
Destroy a vector.
Definition at line 278 of file vector.hpp.
double mfem::Vector::DistanceTo | ( | const double * | p | ) | const |
Compute the Euclidean distance to another vector.
Definition at line 738 of file vector.cpp.
double & mfem::Vector::Elem | ( | int | i | ) |
Sets value in vector. Index i = 0 .. size-1.
Definition at line 75 of file vector.cpp.
const double & mfem::Vector::Elem | ( | int | i | ) | const |
Sets value in vector. Index i = 0 .. size-1.
Definition at line 80 of file vector.cpp.
|
inline |
Definition at line 88 of file vector.hpp.
Definition at line 457 of file vector.cpp.
void mfem::Vector::GetSubVector | ( | const Array< int > & | dofs, |
double * | elem_data | ||
) | const |
Definition at line 476 of file vector.cpp.
void mfem::Vector::Load | ( | std::istream ** | in, |
int | np, | ||
int * | dim | ||
) |
Reads a vector from multiple files.
Definition at line 45 of file vector.cpp.
void mfem::Vector::Load | ( | std::istream & | in, |
int | Size | ||
) |
Load a vector from an input stream.
Definition at line 65 of file vector.cpp.
|
inline |
Load a vector from an input stream.
Definition at line 62 of file vector.hpp.
|
inline |
Definition at line 78 of file vector.hpp.
double mfem::Vector::Max | ( | ) | const |
Returns the maximal element of the vector.
Definition at line 700 of file vector.cpp.
v = median(v,lo,hi) entrywise. Implementation assumes lo <= hi.
Definition at line 440 of file vector.cpp.
double mfem::Vector::Min | ( | ) | const |
Returns the minimal element of the vector.
Definition at line 713 of file vector.cpp.
void mfem::Vector::Neg | ( | ) |
(*this) = -(*this)
Definition at line 251 of file vector.cpp.
|
inline |
Definition at line 72 of file vector.hpp.
double mfem::Vector::Norml1 | ( | ) | const |
Returns the l_1 norm of the vector.
Definition at line 662 of file vector.cpp.
double mfem::Vector::Norml2 | ( | ) | const |
Returns the l2 norm of the vector.
Definition at line 644 of file vector.cpp.
double mfem::Vector::Normlinf | ( | ) | const |
Returns the l_infinity norm of the vector.
Definition at line 649 of file vector.cpp.
double mfem::Vector::Normlp | ( | double | p | ) | const |
Returns the l_p norm of the vector.
Definition at line 674 of file vector.cpp.
|
inline |
Definition at line 92 of file vector.hpp.
|
inline |
Definition at line 90 of file vector.hpp.
|
inline |
Sets value in vector. Index i = 0 .. size-1.
Definition at line 288 of file vector.hpp.
|
inline |
Sets value in vector. Index i = 0 .. size-1.
Definition at line 296 of file vector.hpp.
double mfem::Vector::operator* | ( | const double * | v | ) | const |
Definition at line 85 of file vector.cpp.
double mfem::Vector::operator* | ( | const Vector & | v | ) | const |
Return the inner-product.
Definition at line 100 of file vector.cpp.
Vector & mfem::Vector::operator*= | ( | double | c | ) |
Definition at line 142 of file vector.cpp.
Definition at line 185 of file vector.cpp.
Vector & mfem::Vector::operator-= | ( | double | c | ) |
Definition at line 161 of file vector.cpp.
Definition at line 170 of file vector.cpp.
Vector & mfem::Vector::operator/= | ( | double | c | ) |
Definition at line 151 of file vector.cpp.
Vector & mfem::Vector::operator= | ( | const double * | v | ) |
Definition at line 112 of file vector.cpp.
Redefine '=' for vector = vector.
Definition at line 121 of file vector.cpp.
Vector & mfem::Vector::operator= | ( | double | value | ) |
Redefine '=' for vector = constant.
Definition at line 131 of file vector.cpp.
|
inline |
Definition at line 94 of file vector.hpp.
void mfem::Vector::Print | ( | std::ostream & | out = std::cout , |
int | width = 8 |
||
) | const |
Prints vector to stream out.
Definition at line 583 of file vector.cpp.
void mfem::Vector::Print_HYPRE | ( | std::ostream & | out | ) | const |
Prints vector to stream out in HYPRE_Vector format.
Definition at line 607 of file vector.cpp.
void mfem::Vector::Randomize | ( | int | seed = 0 | ) |
Set random values in the vector.
Definition at line 625 of file vector.cpp.
(*this) = a * x
Definition at line 218 of file vector.cpp.
|
inline |
Definition at line 67 of file vector.hpp.
|
inline |
Definition at line 69 of file vector.hpp.
|
inline |
Resizes the vector if the new size is different.
Definition at line 259 of file vector.hpp.
Definition at line 493 of file vector.cpp.
void mfem::Vector::SetSubVector | ( | const Array< int > & | dofs, |
double * | elem_data | ||
) |
Definition at line 510 of file vector.cpp.
void mfem::Vector::SetSubVectorComplement | ( | const Array< int > & | dofs, |
const double | val | ||
) |
Set all vector entries NOT in the 'dofs' array to the given 'val'.
Definition at line 575 of file vector.cpp.
void mfem::Vector::SetVector | ( | const Vector & | v, |
int | offset | ||
) |
Definition at line 233 of file vector.cpp.
|
inline |
Returns the size of the vector.
Definition at line 84 of file vector.hpp.
|
inline |
Changes the ownership of the data; after the call the Vector is empty.
Definition at line 97 of file vector.hpp.
|
inline |
Changes the ownership of the data; after the call the Vector is empty.
Definition at line 101 of file vector.hpp.
double mfem::Vector::Sum | ( | ) | const |
Return the sum of the vector entries.
Definition at line 726 of file vector.cpp.
|
inline |
Swap the contents of two Vectors.
Definition at line 304 of file vector.hpp.
Do v = v1 + v2.
Definition at line 259 of file vector.cpp.
Do v = v1 + alpha * v2.
Definition at line 277 of file vector.cpp.
z = a * (x + y)
Definition at line 308 of file vector.cpp.
z = a * x + b * y
Definition at line 340 of file vector.cpp.
Do v = v1 - v2.
Definition at line 385 of file vector.cpp.
z = a * (x - y)
Definition at line 407 of file vector.cpp.
|
protected |
Definition at line 37 of file vector.hpp.
|
protected |
Definition at line 38 of file vector.hpp.
|
protected |
Definition at line 37 of file vector.hpp.