Finite element matrix generators.

Finite element matrix generators, right-parts generators. More...


Classes

struct  phelm::Element
 Destination of this structure is finite-element matrix changing. More...

Typedefs

typedef std::vector< Element > phelm::elements_t
 Elements vector.

Functions

template<typename Functor , typename Data >
void phelm::generate_matrix (Matrix &A, const Mesh &m, Functor integrate_cb, Data user_data, bool transpose=false)
 Generate finite element matrix.
template<typename Functor , typename Data >
void phelm::generate_full_matrix (Matrix &A, const Mesh &m, Functor integrate_cb, Data user_data, bool transpose=false)
 Generate full finite-elements matrix.
template<typename Functor , typename Data >
void phelm::generate_right_part (double *b, const Mesh &m, Functor right_part_cb, Data user_data)
 Generate right part.
template<typename Functor , typename Data >
void phelm::generate_full_right_part (double *b, const Mesh &m, Functor right_part_cb, Data user_data)
 Generate full right part.
template<typename Functor , typename Data >
void phelm::generate_boundary_matrix (Matrix &A, const Mesh &m, Functor right_part_cb, Data user_data, bool transpose=false)
 Generate boundary conditions matrix.
template<typename Functor , typename Data >
void phelm::convolution (double *ans, const double *u, const double *v, const Mesh &m, Functor cb, Data user_data)
 Convolution.


Detailed Description

Finite element matrix generators, right-parts generators.

Typedef Documentation

typedef std::vector< Element > phelm::elements_t

Elements vector.

If one wants to change multiple entries of finite-element matrix or finite-element right part he should return that vector in callback.

See also:
generate_matrix, generate_right_part, test_system_laplace::cpp

Definition at line 85 of file phelm_generators.h.


Function Documentation

template<typename Functor , typename Data >
void phelm::convolution ( double *  ans,
const double *  u,
const double *  v,
const Mesh &  m,
Functor  cb,
Data  user_data 
) [inline]

Convolution.

Parameters:
ans - answer
u - mesh vector
v - mesh vector
m - mesh
cb - callback that calculates inner product of two basis functions on a triangle
See also:
generic_scalar_cb, sphere_scalar_cb
Parameters:
user_data - user data that is passed to callback

Definition at line 440 of file phelm_generators.h.

template<typename Functor , typename Data >
void phelm::generate_boundary_matrix ( Matrix &  A,
const Mesh &  m,
Functor  right_part_cb,
Data  user_data,
bool  transpose = false 
) [inline]

Generate boundary conditions matrix.

The size of matrix is inner.size() x outer.size(). Callback parameters: j in boundary point, i is inner point

Parameters:
A - output matrix.
m - mesh
right_part_cb - callback that calculates inner product of two basis functions on a triangle
See also:
generic_scalar_cb, sphere_scalar_cb
Parameters:
user_data - user data
transpose - generate transposed matrix?

Definition at line 394 of file phelm_generators.h.

template<typename Functor , typename Data >
void phelm::generate_full_matrix ( Matrix &  A,
const Mesh &  m,
Functor  integrate_cb,
Data  user_data,
bool  transpose = false 
) [inline]

Generate full finite-elements matrix.

Parameters:
A - output matrix
m - mesh
integrate_cb - callback that calculates inner product of two basis functions on a triangle
See also:
generic_scalar_cb, sphere_scalar_cb
Parameters:
user_data - user data
transpose - generate transposed matrix ?

Definition at line 250 of file phelm_generators.h.

template<typename Functor , typename Data >
void phelm::generate_full_right_part ( double *  b,
const Mesh &  m,
Functor  right_part_cb,
Data  user_data 
) [inline]

Generate full right part.

Parameters:
b - output right part vector
m - mesh
right_part_cb - callback that calculates inner product of two basis functions on a triangle
See also:
generic_scalar_cb, sphere_scalar_cb
Parameters:
user_data - user data

Definition at line 341 of file phelm_generators.h.

template<typename Functor , typename Data >
void phelm::generate_matrix ( Matrix &  A,
const Mesh &  m,
Functor  integrate_cb,
Data  user_data,
bool  transpose = false 
) [inline]

Generate finite element matrix.

Call integrate_cb for all phi_i, phi_j that are defined at shared point in triangle tr. If flag transpose is set then generate transposed matrix

Callback parameters:

  • const Polynom & phi_i,
  • const Polynom & phi_j,
  • const Triangle & tr - triangle,
  • const Mesh & mesh - mesh,
  • int point_i - global point number,
  • int point_j - global point number ,
  • int i - number of row in matrix (inner point number),
  • int j - number of columnt in matrix (inner point number),
  • void * user_data - user data

Parameters:
A - output matrix
m - mesh
integrate_cb - callback that calculates inner product of two basis functions on a triangle
See also:
generic_scalar_cb, sphere_scalar_cb
Parameters:
user_data - user data
transpose - generate transposed matrix ?
Examples:
test_system_laplace.cpp.

Definition at line 199 of file phelm_generators.h.

template<typename Functor , typename Data >
void phelm::generate_right_part ( double *  b,
const Mesh &  m,
Functor  right_part_cb,
Data  user_data 
) [inline]

Generate right part.

Parameters:
b - output right part vector
m - mesh
right_part_cb - callback that calculates inner product of two basis functions on a triangle
See also:
generic_scalar_cb, sphere_scalar_cb
Parameters:
user_data - user data
Examples:
test_system_laplace.cpp.

Definition at line 290 of file phelm_generators.h.


Phelm Library
Copyright © 2009 Alexey Ozeritsky. All rights reserved.
http://resetius.ru