22 #ifndef __HERMES_COMMON_VECTOR_H
23 #define __HERMES_COMMON_VECTOR_H
35 template<
typename Scalar>
43 Vector(
unsigned int size);
49 virtual void alloc(
unsigned int ndofs) = 0;
51 virtual void free() = 0;
58 virtual Scalar
get(
unsigned int idx)
const = 0;
65 virtual void extract(Scalar *v)
const = 0;
68 virtual void zero() = 0;
77 virtual void set(
unsigned int idx, Scalar y) = 0;
83 virtual void add(
unsigned int idx, Scalar y) = 0;
105 virtual void add(
unsigned int n,
unsigned int *idx, Scalar *y) = 0;
108 unsigned int get_size()
const {
return this->size; }
115 template <
typename Scalar>
123 virtual void alloc(
unsigned int ndofs);
125 virtual Scalar
get(
unsigned int idx)
const;
126 virtual void extract(Scalar *v)
const;
133 virtual void set(
unsigned int idx, Scalar y);
134 virtual void add(
unsigned int idx, Scalar y);
135 virtual void add(
unsigned int n,
unsigned int *idx, Scalar *y);
145 virtual void export_to_file(
const char *filename,
const char *var_name,
MatrixExportFormat fmt,
char* number_format =
"%lf");
146 virtual void import_from_file(
const char *filename,
const char *var_name,
MatrixExportFormat fmt);
154 template<
typename Scalar> HERMES_API
158 template<
typename Scalar>
162 for (
unsigned int i = 0; i < vec->
get_size(); i++)
164 Scalar inc = vec->
get(i);
165 val = val + inc*conj(inc);
167 return sqrt(std::abs(val));
170 template<
typename Scalar>
171 double get_l2_norm(Scalar* vec,
int count)
174 for (
unsigned int i = 0; i < count; i++)
177 val = val + inc*conj(inc);
179 return sqrt(std::abs(val));
General namespace for the Hermes library.
General (abstract) vector representation in Hermes.
virtual Scalar get(unsigned int idx) const =0
MatrixExportFormat
Format of file matrix and vector output.
Utilities for all Algebra code.
Vector used with MUMPS solver.
virtual void finish()
finish the assembly of the vector
HERMES_API Vector< Scalar > * create_vector(bool use_direct_solver=false)
Function returning a vector according to the users's choice.
Mixins classes for algebraic purposes.
void change_sign(T **matrix, unsigned int m, unsigned int n)
Changes the sign of a matrix.
unsigned int get_size() const
Get vector length.
Mix-in classes for one functionality, for various classes to be derived from.
unsigned int size
size of vector
Class the output of which is loggable, i.e. that uses functionality of info(), warn() Contains the cl...