MFEM
v3.3
Finite element discretization library
|
Class for linear form - Vector with associated FE space and LFIntegrators. More...
#include <linearform.hpp>
Public Member Functions | |
LinearForm (FiniteElementSpace *f) | |
Creates linear form associated with FE space *f. More... | |
LinearForm () | |
FiniteElementSpace * | GetFES () |
void | AddDomainIntegrator (LinearFormIntegrator *lfi) |
Adds new Domain Integrator. More... | |
void | AddBoundaryIntegrator (LinearFormIntegrator *lfi) |
Adds new Boundary Integrator. More... | |
void | AddBdrFaceIntegrator (LinearFormIntegrator *lfi) |
Adds new Boundary Face Integrator. More... | |
void | AddBdrFaceIntegrator (LinearFormIntegrator *lfi, Array< int > &bdr_attr_marker) |
Add new Boundary Face Integrator, restricted to the given boundary attributes. More... | |
void | Assemble () |
Assembles the linear form i.e. sums over all domain/bdr integrators. More... | |
void | Update () |
void | Update (FiniteElementSpace *f) |
void | Update (FiniteElementSpace *f, Vector &v, int v_offset) |
~LinearForm () | |
Destroys linear form. 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. Allocates a new data array and copies the data. 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, reading the size from the stream. More... | |
void | SetSize (int s) |
Resize the vector to size s. More... | |
void | SetData (double *d) |
void | SetDataAndSize (double *d, int s) |
Set the Vector data and size. More... | |
void | NewDataAndSize (double *d, int s) |
Set the Vector data and size, deleting the old data, if owned. More... | |
void | MakeDataOwner () |
void | Destroy () |
Destroy a vector. More... | |
int | Size () const |
Returns the size of the vector. More... | |
int | Capacity () const |
Return the size of the currently allocated data array. More... | |
double * | GetData () const |
operator double * () | |
Conversion to double * . More... | |
operator const double * () const | |
Conversion to const double * . More... | |
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) |
Access Vector entries. Index i = 0 .. size-1. More... | |
const double & | Elem (int i) const |
Read only access to Vector entries. Index i = 0 .. size-1. More... | |
double & | operator() (int i) |
Access Vector entries using () for 0-based indexing. More... | |
const double & | operator() (int i) const |
Read only access to Vector entries using () for 0-based indexing. More... | |
double | operator* (const double *) const |
Dot product with a double * array. More... | |
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 double value) |
Set the entries listed in dofs to the given value . More... | |
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... | |
Vector (N_Vector nv) | |
Construct a wrapper Vector from SUNDIALS N_Vector. More... | |
virtual N_Vector | ToNVector () |
Return a new wrapper SUNDIALS N_Vector of type SUNDIALS_NVEC_SERIAL. More... | |
virtual void | ToNVector (N_Vector &nv) |
Update an existing wrapper SUNDIALS N_Vector to point to this Vector. More... | |
Additional Inherited Members | |
Protected Attributes inherited from mfem::Vector | |
int | size |
int | allocsize |
double * | data |
Class for linear form - Vector with associated FE space and LFIntegrators.
Definition at line 23 of file linearform.hpp.
|
inline |
Creates linear form associated with FE space *f.
Definition at line 41 of file linearform.hpp.
|
inline |
Definition at line 44 of file linearform.hpp.
mfem::LinearForm::~LinearForm | ( | ) |
Destroys linear form.
Definition at line 131 of file linearform.cpp.
void mfem::LinearForm::AddBdrFaceIntegrator | ( | LinearFormIntegrator * | lfi | ) |
Adds new Boundary Face Integrator.
Definition at line 29 of file linearform.cpp.
void mfem::LinearForm::AddBdrFaceIntegrator | ( | LinearFormIntegrator * | lfi, |
Array< int > & | bdr_attr_marker | ||
) |
Add new Boundary Face Integrator, restricted to the given boundary attributes.
Definition at line 35 of file linearform.cpp.
void mfem::LinearForm::AddBoundaryIntegrator | ( | LinearFormIntegrator * | lfi | ) |
Adds new Boundary Integrator.
Definition at line 24 of file linearform.cpp.
void mfem::LinearForm::AddDomainIntegrator | ( | LinearFormIntegrator * | lfi | ) |
Adds new Domain Integrator.
Definition at line 19 of file linearform.cpp.
void mfem::LinearForm::Assemble | ( | ) |
Assembles the linear form i.e. sums over all domain/bdr integrators.
Definition at line 42 of file linearform.cpp.
|
inline |
Definition at line 46 of file linearform.hpp.
|
inline |
Definition at line 65 of file linearform.hpp.
|
inline |
Definition at line 67 of file linearform.hpp.
void mfem::LinearForm::Update | ( | FiniteElementSpace * | f, |
Vector & | v, | ||
int | v_offset | ||
) |
Definition at line 125 of file linearform.cpp.