phelm Namespace Reference

This namespace contains all Phelm functions and classes. More...


Classes

struct  Point
 Point class represents a 2-dimensional point on a plane. More...
struct  MeshPoint
 A point of a manifold can be included into multiple subdomains. More...
struct  Triangle
 Triangle class. More...
struct  Mesh
 Mesh class. More...
struct  Element
 Destination of this structure is finite-element matrix changing. More...
struct  Polynom
 Polynom of variables (x, y). More...
class  Matrix
 Matrix class. More...

Typedefs

typedef double(* x_t )(double u, double v)
 callback that converts local coordinates to global coordinates.
typedef double(* f_xy_t )(double x, double y)
 Function.
typedef double(* f_xyt_t )(double x, double y, double t)
 Function.
typedef std::vector< Elementelements_t
 Elements vector.

Functions

void print_inner_function (FILE *to, double *ans, const Mesh &m, x_t x=0, x_t y=0, x_t z=0)
 Print the inner part of a mesh function to file.
void print_inner_function (const char *to, double *ans, const Mesh &m, x_t x=0, x_t y=0, x_t z=0)
 Print the inner part of a mesh function to file.
void print_function (FILE *to, double *ans, const Mesh &m, x_t x=0, x_t y=0, x_t z=0)
 Print a mesh function to file.
void print_function (const char *fname, double *ans, const Mesh &m, x_t x=0, x_t y=0, x_t z=0)
 Print a mesh function to file.
void solve (double *answer, const double *bnd, double *rp, Matrix &A, const Mesh &m)
 Solve the system with A matrix (Ax=rp).
void solve2 (double *answer, double *rp, Matrix &A, const Mesh &m)
 Solve the system with A matrix (Ax=rp).
void p2u (double *u, const double *p, const double *bnd, const Mesh &m)
 Add boundary conditions to p.
void u2p (double *p, const double *u, const Mesh &m)
 Remove boundary conditions from u.
void set_bnd (double *F, const double *bnd, const Mesh &m)
 Set the boundary value of vector F.
double generic_scalar_cb (const Polynom &phi_i, const Polynom &phi_j, const Triangle &trk, const Mesh &m, int i1, int j1, int i2, int j2, void *user_data)
 Calculate inner product of two basis functions on flat domain.
double sphere_scalar_cb (const Polynom &phi_i, const Polynom &phi_j, const Triangle &trk, const Mesh &m, int i1, int j1, int i2, int j2, void *user_data)
 Calculate inner product of two basis functions on sphere.
double fast_scalar (const double *u, const double *v, const Mesh &m, Matrix &mat)
 Fast mesh inner product calculator.
double fast_norm (const double *u, const Mesh &m, Matrix &mat)
 Fast mesh norm calculator.
double fast_dist (const double *u, const double *v, const Mesh &m, Matrix &mat)
 Fast mesh distance calculator.
void proj (double *F, const Mesh &mesh, f_xy_t f)
 Project function f(x,y) to the mesh.
void proj_bnd (double *F, const Mesh &m, f_xy_t f)
 Project function f(x,y) to the boundary of the mesh.
void proj_bnd (double *F, const double *F1, const Mesh &m)
 Project vector F1 to the boundary of the mesh.
void proj (double *F, const Mesh &mesh, f_xyt_t f, double t)
 Project function f(x,y,t) to the mesh.
void proj_bnd (double *F, const Mesh &m, f_xyt_t f, double t)
 Project function f(x,y,t) to the boundary of the mesh.
template<typename Functor , typename Data >
void 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 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 generate_right_part (double *b, const Mesh &m, Functor right_part_cb, Data user_data)
 Generate right part.
template<typename Functor , typename Data >
void 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 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 convolution (double *ans, const double *u, const double *v, const Mesh &m, Functor cb, Data user_data)
 Convolution.
template<typename Functor , typename Data >
double scalar (const double *u, const double *v, const Mesh &m, Functor cb, Data user_data)
 Calculate inner product of two mesh vectors.
template<typename Functor , typename Data >
void generate_scalar_matrix (Matrix &mat, const Mesh &m, Functor cb, Data user_data)
 Create matrix for fast inner product computation.
template<typename Functor , typename Data >
double norm (const double *u, const Mesh &m, Functor cb, Data user_data)
 Calculate norm of mesh vector.
double norm (const double *u, const Mesh &m)
 Calculate norm of mesh vector on flat domain.
template<typename Functor , typename Data >
double dist (const double *u, const double *v, const Mesh &m, Functor cb, Data user_data)
 Calculate distance between two mesh vectors.
double dist (const double *u, const double *v, const Mesh &m)
 Calculate distance between two mesh vectors on flat domain.


Detailed Description

This namespace contains all Phelm functions and classes.


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