Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Macros | Typedefs | Functions
poly.c File Reference
#include <stddef.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <string.h>
#include "c99.h"
#include "name.h"
#include "fail.h"
#include "mem.h"
#include "poly_imp.h"
+ Include dependency graph for poly.c:

Go to the source code of this file.

Macros

#define lagrange_size   PREFIXED_NAME(lagrange_size )
 
#define lagrange_setup   PREFIXED_NAME(lagrange_setup)
 
#define gauss_nodes   PREFIXED_NAME(gauss_nodes )
 
#define gauss_quad   PREFIXED_NAME(gauss_quad )
 
#define lobatto_nodes   PREFIXED_NAME(lobatto_nodes )
 
#define lobatto_quad   PREFIXED_NAME(lobatto_quad )
 
#define gll_lag_size   PREFIXED_NAME(gll_lag_size )
 
#define gll_lag_setup   PREFIXED_NAME(gll_lag_setup )
 
#define EPS   (128*DBL_EPSILON)
 
#define PI   3.1415926535897932384626433832795028841971693993751058209749445923
 

Typedefs

typedef void lagrange_fun(double *restrict p, double *restrict data, unsigned n, int d, double x)
 

Functions

static void lagrange_eval (double *restrict p, double *restrict data, unsigned n, int der, double x)
 
static void lagrange_coef (double *restrict p, double *data, double *w, const double *z, unsigned n, lagrange_fun *lag_eval)
 
unsigned lagrange_size (unsigned n)
 
lagrange_funlagrange_setup (double *restrict data, const double *restrict z, unsigned n)
 
static double legendre (int n, double x)
 
static double legendre_d1 (int n, double x)
 
static double legendre_d2 (int n, double x)
 
void gauss_nodes (double *restrict z, int n)
 
static void lobatto_nodes_aux (double *restrict z, int n)
 
static void lobatto_nodes_n (double *restrict z, int n)
 
static void lobatto_nodes_fix (double *restrict z, int n)
 
void lobatto_nodes (double *restrict z, int n)
 
void gauss_quad (double *restrict z, double *restrict w, int n)
 
void lobatto_quad (double *restrict z, double *restrict w, int n)
 
unsigned gll_lag_size (unsigned n)
 
lagrange_fungll_lag_setup (double *restrict data, int n)
 

Macro Definition Documentation

#define EPS   (128*DBL_EPSILON)

Definition at line 74 of file poly.c.

Referenced by gauss_nodes(), and lobatto_nodes_aux().

#define gauss_nodes   PREFIXED_NAME(gauss_nodes )

Definition at line 13 of file poly.c.

Referenced by gauss_quad(), and main().

#define gauss_quad   PREFIXED_NAME(gauss_quad )

Definition at line 14 of file poly.c.

Referenced by main().

#define gll_lag_setup   PREFIXED_NAME(gll_lag_setup )

Definition at line 18 of file poly.c.

Referenced by findpts_el_setup_2(), findpts_el_setup_3(), lob_bnd_setup(), and main().

#define gll_lag_size   PREFIXED_NAME(gll_lag_size )
#define lagrange_setup   PREFIXED_NAME(lagrange_setup)

Definition at line 12 of file poly.c.

Referenced by main().

#define lagrange_size   PREFIXED_NAME(lagrange_size )

Definition at line 11 of file poly.c.

Referenced by main().

#define lobatto_nodes   PREFIXED_NAME(lobatto_nodes )
#define lobatto_quad   PREFIXED_NAME(lobatto_quad )

Definition at line 16 of file poly.c.

Referenced by lob_bnd_setup(), and main().

#define PI   3.1415926535897932384626433832795028841971693993751058209749445923

Definition at line 75 of file poly.c.

Referenced by gauss_nodes(), and lobatto_nodes_aux().

Typedef Documentation

typedef void lagrange_fun(double *restrict p, double *restrict data, unsigned n, int d, double x)

Definition at line 20 of file poly.c.

Function Documentation

void gauss_nodes ( double *restrict  z,
int  n 
)

Definition at line 139 of file poly.c.

References EPS, i, legendre(), legendre_d1(), n, PI, and x.

+ Here is the call graph for this function:

void gauss_quad ( double *restrict  z,
double *restrict  w,
int  n 
)

Definition at line 195 of file poly.c.

References gauss_nodes, i, legendre(), and n.

+ Here is the call graph for this function:

lagrange_fun* gll_lag_setup ( double *restrict  data,
int  n 
)

Definition at line 222 of file poly.c.

References GLL_LAG_FIX_MAX, gll_lag_table, lagrange_coef(), lagrange_eval(), lobatto_nodes, n, p, tmalloc, and z.

+ Here is the call graph for this function:

unsigned gll_lag_size ( unsigned  n)

Definition at line 217 of file poly.c.

References GLL_LAG_FIX_MAX, and n.

static void lagrange_coef ( double *restrict  p,
double *  data,
double *  w,
const double *  z,
unsigned  n,
lagrange_fun lag_eval 
)
static

Definition at line 50 of file poly.c.

References i, and n.

Referenced by gll_lag_setup(), and lagrange_setup().

+ Here is the caller graph for this function:

static void lagrange_eval ( double *restrict  p,
double *restrict  data,
unsigned  n,
int  der,
double  x 
)
static

Definition at line 25 of file poly.c.

References i, n, restrict, and z.

Referenced by gll_lag_setup(), and lagrange_setup().

+ Here is the caller graph for this function:

lagrange_fun* lagrange_setup ( double *restrict  data,
const double *restrict  z,
unsigned  n 
)

Definition at line 64 of file poly.c.

References lagrange_coef(), lagrange_eval(), p, restrict, and tmalloc.

+ Here is the call graph for this function:

unsigned lagrange_size ( unsigned  n)

Definition at line 59 of file poly.c.

References n.

static double legendre ( int  n,
double  x 
)
static

Definition at line 94 of file poly.c.

References i, p, and x.

Referenced by gauss_nodes(), gauss_quad(), and lobatto_quad().

+ Here is the caller graph for this function:

static double legendre_d1 ( int  n,
double  x 
)
static

Definition at line 107 of file poly.c.

References i, p, and x.

Referenced by gauss_nodes(), and lobatto_nodes_aux().

+ Here is the caller graph for this function:

static double legendre_d2 ( int  n,
double  x 
)
static

Definition at line 120 of file poly.c.

References i, p, and x.

Referenced by lobatto_nodes_aux().

+ Here is the caller graph for this function:

void lobatto_nodes ( double *restrict  z,
int  n 
)

Definition at line 189 of file poly.c.

References GLL_LAG_FIX_MAX, lobatto_nodes_fix(), and lobatto_nodes_n().

+ Here is the call graph for this function:

static void lobatto_nodes_aux ( double *restrict  z,
int  n 
)
static

Definition at line 155 of file poly.c.

References EPS, i, legendre_d1(), legendre_d2(), n, np, PI, and x.

Referenced by lobatto_nodes_n().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void lobatto_nodes_fix ( double *restrict  z,
int  n 
)
static

Definition at line 177 of file poly.c.

References gllz_table, i, and restrict.

Referenced by lobatto_nodes().

+ Here is the caller graph for this function:

static void lobatto_nodes_n ( double *restrict  z,
int  n 
)
static

Definition at line 171 of file poly.c.

References lobatto_nodes_aux().

Referenced by lobatto_nodes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void lobatto_quad ( double *restrict  z,
double *restrict  w,
int  n 
)

Definition at line 206 of file poly.c.

References i, legendre(), lobatto_nodes, and n.

+ Here is the call graph for this function: