7.0
general documentation
cs_quadrature.h File Reference
#include <bft_error.h>
#include "cs_base.h"
#include "cs_defs.h"
#include "cs_flag.h"
#include "cs_math.h"
#include "cs_param_types.h"
+ Include dependency graph for cs_quadrature.h:

Go to the source code of this file.

Typedefs

typedef void() cs_quadrature_edge_t(const cs_real_3_t v1, const cs_real_3_t v2, double len, cs_real_3_t gpts[], double *weights)
 Generic function pointer to compute the quadrature points for an edge from v1 -> v2. More...
 
typedef void() cs_quadrature_tria_t(const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, double area, cs_real_3_t gpts[], double *weights)
 Generic functoin pointer to compute the quadrature points for a triangle. More...
 
typedef void() cs_quadrature_tet_t(const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, const cs_real_3_t v4, double vol, cs_real_3_t gpts[], double weights[])
 Generic function to compute the quadrature points in a tetrehedra. More...
 
typedef void() cs_quadrature_edge_integral_t(double tcur, const cs_real_3_t v1, const cs_real_3_t v2, double len, cs_analytic_func_t *ana, void *input, double results[])
 Compute the integral over an edge based on a specified quadrature rule and add it to results. More...
 
typedef void() cs_quadrature_tria_integral_t(double tcur, const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, double area, cs_analytic_func_t *ana, void *input, double results[])
 Compute the integral over a triangle based on a specified quadrature rule and add it to results. More...
 
typedef void() cs_quadrature_tetra_integral_t(double tcur, const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, const cs_real_3_t v4, double vol, cs_analytic_func_t *ana, void *input, double results[])
 Compute the integral over a tetrahedron based on a specified quadrature rule and add it to results. More...
 

Enumerations

enum  cs_quadrature_type_t {
  CS_QUADRATURE_NONE, CS_QUADRATURE_BARY, CS_QUADRATURE_BARY_SUBDIV, CS_QUADRATURE_HIGHER,
  CS_QUADRATURE_HIGHEST, CS_QUADRATURE_N_TYPES
}
 

Functions

void cs_quadrature_setup (void)
 Compute constant weights for all quadratures used. More...
 
const char * cs_quadrature_get_type_name (const cs_quadrature_type_t type)
 Return th name associated to a type of quadrature. More...
 
void cs_quadrature_edge_2pts (const cs_real_3_t v1, const cs_real_3_t v2, double len, cs_real_3_t gpts[], double *w)
 Compute quadrature points for an edge from v1 -> v2 (2 points) Exact for polynomial function up to order 3. More...
 
void cs_quadrature_edge_3pts (const cs_real_3_t v1, const cs_real_3_t v2, double len, cs_real_3_t gpts[], double w[])
 Compute quadrature points for an edge from v1 -> v2 (3 points) Exact for polynomial function up to order 5. More...
 
void cs_quadrature_tria_3pts (const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, double area, cs_real_3_t gpts[], double *w)
 Compute quadrature points for a triangle (3 points) Exact for polynomial function up to order 2. More...
 
void cs_quadrature_tria_4pts (const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, double area, cs_real_3_t gpts[], double w[])
 Compute quadrature points for a triangle (4 points) Exact for polynomial function up to order 3. More...
 
void cs_quadrature_tria_7pts (const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, double area, cs_real_3_t gpts[], double w[])
 Compute quadrature points for a triangle (7 points) Exact for polynomial function up to order 5. More...
 
void cs_quadrature_tet_4pts (const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, const cs_real_3_t v4, double vol, cs_real_3_t gpts[], double weights[])
 Compute the quadrature in a tetrehedra. Exact for 2nd order polynomials (order 3). More...
 
void cs_quadrature_tet_5pts (const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, const cs_real_3_t v4, double vol, cs_real_3_t gpts[], double weights[])
 Compute the quadrature in a tetrehedra. Exact for 3rd order polynomials (order 4). More...
 
void cs_quadrature_tet_15pts (const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, const cs_real_3_t v4, double vol, cs_real_3_t gpts[], double weights[])
 Compute the quadrature in a tetrehedra. Exact for 5th order polynomials (order 6). More...
 
cs_eflag_t cs_quadrature_get_flag (const cs_quadrature_type_t qtype, const cs_flag_t loc)
 Get the flags adapted to the given quadrature type qtype and the location on which the quadrature should be performed. More...
 

Typedef Documentation

◆ cs_quadrature_edge_integral_t

typedef void() cs_quadrature_edge_integral_t(double tcur, const cs_real_3_t v1, const cs_real_3_t v2, double len, cs_analytic_func_t *ana, void *input, double results[])

Compute the integral over an edge based on a specified quadrature rule and add it to results.

Parameters
[in]tcurcurrent physical time of the simulation
[in]v1first point of the edge
[in]v2second point of the edge
[in]lenlength of the edge
[in]anapointer to the analytic function
[in]inputNULL or pointer to a structure cast on-the-fly
[in,out]resultsarray of double

◆ cs_quadrature_edge_t

typedef void() cs_quadrature_edge_t(const cs_real_3_t v1, const cs_real_3_t v2, double len, cs_real_3_t gpts[], double *weights)

Generic function pointer to compute the quadrature points for an edge from v1 -> v2.

Parameters
[in]v1first vertex
[in]v2second vertex
[in]lenlength of edge [v1, v2]
[in,out]gptsgauss points
[in,out]wweight (same weight for the two points)

◆ cs_quadrature_tet_t

typedef void() cs_quadrature_tet_t(const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, const cs_real_3_t v4, double vol, cs_real_3_t gpts[], double weights[])

Generic function to compute the quadrature points in a tetrehedra.

Parameters
[in]v1first vertex
[in]v2second vertex
[in]v3third vertex
[in]v4fourth vertex
[in]volvolume of tetrahedron {v1, v2, v3, v4}
[in,out]gptsGauss points
[in,out]weightsweigths related to each Gauss point

◆ cs_quadrature_tetra_integral_t

typedef void() cs_quadrature_tetra_integral_t(double tcur, const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, const cs_real_3_t v4, double vol, cs_analytic_func_t *ana, void *input, double results[])

Compute the integral over a tetrahedron based on a specified quadrature rule and add it to results.

Parameters
[in]tcurcurrent physical time of the simulation
[in]v1first point of the tetrahedron
[in]v2second point of the tetrahedron
[in]v3third point of the tetrahedron
[in]v4fourth point of the tetrahedron
[in]volvolume of the tetrahedron
[in]anapointer to the analytic function
[in]inputNULL or pointer to a structure cast on-the-fly
[in,out]resultsarray of double

◆ cs_quadrature_tria_integral_t

typedef void() cs_quadrature_tria_integral_t(double tcur, const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, double area, cs_analytic_func_t *ana, void *input, double results[])

Compute the integral over a triangle based on a specified quadrature rule and add it to results.

Parameters
[in]tcurcurrent physical time of the simulation
[in]v1first point of the triangle
[in]v2second point of the triangle
[in]v3third point of the triangle
[in]areaarea of the triangle
[in]anapointer to the analytic function
[in]inputNULL or pointer to a structure cast on-the-fly
[in,out]resultsarray of double

◆ cs_quadrature_tria_t

typedef void() cs_quadrature_tria_t(const cs_real_3_t v1, const cs_real_3_t v2, const cs_real_3_t v3, double area, cs_real_3_t gpts[], double *weights)

Generic functoin pointer to compute the quadrature points for a triangle.

Parameters
[in]v1first vertex
[in]v2second vertex
[in]v3third vertex
[in]areaarea of triangle {v1, v2, v3}
[in,out]gptsGauss points
[in,out]weightsweights values

Enumeration Type Documentation

◆ cs_quadrature_type_t

Enumerator
CS_QUADRATURE_NONE 
CS_QUADRATURE_BARY 
CS_QUADRATURE_BARY_SUBDIV 
CS_QUADRATURE_HIGHER 
CS_QUADRATURE_HIGHEST 
CS_QUADRATURE_N_TYPES 

Function Documentation

◆ cs_quadrature_edge_2pts()

void cs_quadrature_edge_2pts ( const cs_real_3_t  v1,
const cs_real_3_t  v2,
double  len,
cs_real_3_t  gpts[],
double *  w 
)

Compute quadrature points for an edge from v1 -> v2 (2 points) Exact for polynomial function up to order 3.

Parameters
[in]v1first vertex
[in]v2second vertex
[in]lenlength of edge [v1, v2]
[in,out]gptsgauss points
[in,out]wweight (same weight for the two points)

◆ cs_quadrature_edge_3pts()

void cs_quadrature_edge_3pts ( const cs_real_3_t  v1,
const cs_real_3_t  v2,
double  len,
cs_real_3_t  gpts[],
double  w[] 
)

Compute quadrature points for an edge from v1 -> v2 (3 points) Exact for polynomial function up to order 5.

Parameters
[in]v1first vertex
[in]v2second vertex
[in]lenlength of edge [v1, v2]
[in,out]gptsgauss points
[in,out]wweights
[in]v1first vertex
[in]v2second vertex
[in]lenlength of edge [v1, v2]
[in,out]gptsgauss points
[in,out]wweights

◆ cs_quadrature_get_flag()

cs_eflag_t cs_quadrature_get_flag ( const cs_quadrature_type_t  qtype,
const cs_flag_t  loc 
)

Get the flags adapted to the given quadrature type qtype and the location on which the quadrature should be performed.

Parameters
[in]qtypecs_quadrature_type_t
[in]locIt could be CS_FLAG_CELL, CS_FLAG_FACE or CS_FLAG_EDGE plus CS_FLAG_PRIMAL or CS_FLAG_DUAL
Returns
metadata stored in a cs_eflag_t to build a cs_cell_mesh_t

◆ cs_quadrature_get_type_name()

const char* cs_quadrature_get_type_name ( const cs_quadrature_type_t  type)

Return th name associated to a type of quadrature.

Parameters
[in]typecs_quadrature_type_t
Returns
the name associated to a given type of quadrature

◆ cs_quadrature_setup()

void cs_quadrature_setup ( void  )

Compute constant weights for all quadratures used.

◆ cs_quadrature_tet_15pts()

void cs_quadrature_tet_15pts ( const cs_real_3_t  v1,
const cs_real_3_t  v2,
const cs_real_3_t  v3,
const cs_real_3_t  v4,
double  vol,
cs_real_3_t  gpts[],
double  weights[] 
)

Compute the quadrature in a tetrehedra. Exact for 5th order polynomials (order 6).

Parameters
[in]v1first vertex
[in]v2second vertex
[in]v3third vertex
[in]v4fourth vertex
[in]volvolume of tetrahedron {v1, v2, v3, v4}
[in,out]gpts15 Gauss points (size = 3*15)
[in,out]weights15 weigths related to each Gauss point

◆ cs_quadrature_tet_4pts()

void cs_quadrature_tet_4pts ( const cs_real_3_t  v1,
const cs_real_3_t  v2,
const cs_real_3_t  v3,
const cs_real_3_t  v4,
double  vol,
cs_real_3_t  gpts[],
double  weights[] 
)

Compute the quadrature in a tetrehedra. Exact for 2nd order polynomials (order 3).

Parameters
[in]v1first vertex
[in]v2second vertex
[in]v3third vertex
[in]v4fourth vertex
[in]volvolume of tetrahedron {v1, v2, v3, v4}
[in,out]gpts4 Gauss points (size = 3*4)
[in,out]weightsweight (same value for all points)

◆ cs_quadrature_tet_5pts()

void cs_quadrature_tet_5pts ( const cs_real_3_t  v1,
const cs_real_3_t  v2,
const cs_real_3_t  v3,
const cs_real_3_t  v4,
double  vol,
cs_real_3_t  gpts[],
double  weights[] 
)

Compute the quadrature in a tetrehedra. Exact for 3rd order polynomials (order 4).

Parameters
[in]v1first vertex
[in]v2second vertex
[in]v3third vertex
[in]v4fourth vertex
[in]volvolume of tetrahedron {v1, v2, v3, v4}
[in,out]gpts5 Gauss points (size = 3*5)
[in,out]weights5 weigths related to each Gauss point

◆ cs_quadrature_tria_3pts()

void cs_quadrature_tria_3pts ( const cs_real_3_t  v1,
const cs_real_3_t  v2,
const cs_real_3_t  v3,
double  area,
cs_real_3_t  gpts[],
double *  w 
)

Compute quadrature points for a triangle (3 points) Exact for polynomial function up to order 2.

Parameters
[in]v1first vertex
[in]v2second vertex
[in]v3third vertex
[in]areaarea of triangle {v1, v2, v3}
[in,out]gptsgauss points
[in,out]wweight (same weight for the three points)

◆ cs_quadrature_tria_4pts()

void cs_quadrature_tria_4pts ( const cs_real_3_t  v1,
const cs_real_3_t  v2,
const cs_real_3_t  v3,
double  area,
cs_real_3_t  gpts[],
double  w[] 
)

Compute quadrature points for a triangle (4 points) Exact for polynomial function up to order 3.

Parameters
[in]v1first vertex
[in]v2second vertex
[in]v3third vertex
[in]areaarea of triangle {v1, v2, v3}
[in,out]gptsgauss points
[in,out]wweights

◆ cs_quadrature_tria_7pts()

void cs_quadrature_tria_7pts ( const cs_real_3_t  v1,
const cs_real_3_t  v2,
const cs_real_3_t  v3,
double  area,
cs_real_3_t  gpts[],
double  w[] 
)

Compute quadrature points for a triangle (7 points) Exact for polynomial function up to order 5.

Parameters
[in]v1first vertex
[in]v2second vertex
[in]v3third vertex
[in]areaarea of triangle {v1, v2, v3}
[in,out]gptsgauss points
[in,out]wweights