#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"
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... | |
typedef void() | cs_quadrature_hexa_integral_t(double tcur, const cs_real_3_t vb, const double hx, const double hy, const double hz, cs_analytic_func_t *ana, void *input, double results[]) |
Compute the integral over an orthogonal hexahedron 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 } |
Type of quadrature to use when computing an integral quantity. This rationale is used for integrals along edges/lines, over faces/surfaces or inside cells/volumes. More... | |
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... | |
static void | cs_quadrature_edge_1pt (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 1. 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... | |
static void | cs_quadrature_hex_1pt (const cs_real_3_t vb, const double hx, const double hy, const double hz, cs_real_3_t gpts[], double *w) |
Compute quadrature points for an orthogonal hexahedron Exact for polynomial function up to order 1. More... | |
void | cs_quadrature_hex_8pts (const cs_real_3_t vb, const double hx, const double hy, const double hz, cs_real_3_t gpts[], double *w) |
Compute quadrature points for an orthogonal hexahedron Exact for polynomial function up to order 3. More... | |
void | cs_quadrature_hex_27pts (const cs_real_3_t vb, const double hx, const double hy, const double hz, cs_real_3_t gpts[], double w[]) |
Compute quadrature points for an orthogonal hexahedron Exact for polynomial function up to order 5. More... | |
static void | cs_quadrature_tria_1pt (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 (1 point) Exact for polynomial function up to order 1 (barycentric approx.) 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... | |
static void | cs_quadrature_tet_1pt (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 weight[]) |
Compute the quadrature in a tetrehedra. Exact for 1st order polynomials (order 2). 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... | |
static void | cs_quadrature_edge_1pt_scal (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 with the mid-point rule and add it to results Case of a scalar-valued function. More... | |
static void | cs_quadrature_edge_2pts_scal (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 with a quadrature rule using 2 Gauss points and a unique weight and add it to results Case of a scalar-valued function. More... | |
static void | cs_quadrature_edge_3pts_scal (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 with a quadrature rule using 3 Gauss points and weights and add it to results Case of a scalar-valued function. More... | |
static void | cs_quadrature_edge_1pt_vect (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 using a barycentric quadrature rule and add it to results Case of a vector-valued function. More... | |
static void | cs_quadrature_edge_2pts_vect (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 with a quadrature rule using 2 Gauss points and a unique weight and add it to results Case of a vector-valued function. More... | |
static void | cs_quadrature_edge_3pts_vect (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 with a quadrature rule using 3 Gauss points and weights and add it to results Case of a vector-valued function. More... | |
static void | cs_quadrature_tria_1pt_scal (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 using a barycentric quadrature rule and add it to results Case of a scalar-valued function. More... | |
static void | cs_quadrature_tria_3pts_scal (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 with a quadrature rule using 3 Gauss points and a unique weight and add it to results Case of a scalar-valued function. More... | |
static void | cs_quadrature_tria_4pts_scal (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 with a quadrature rule using 4 Gauss points and 4 weights and add it to results Case of a scalar-valued function. More... | |
static void | cs_quadrature_tria_7pts_scal (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 with a quadrature rule using 7 Gauss points and 7 weights and add it to results Case of a scalar-valued function. More... | |
static void | cs_quadrature_tria_1pt_vect (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 using a barycentric quadrature rule and add it to results Case of a vector-valued function. More... | |
static void | cs_quadrature_tria_3pts_vect (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 with a quadrature rule using 3 Gauss points and a unique weight and add it to results Case of a vector-valued function. More... | |
static void | cs_quadrature_tria_4pts_vect (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 with a quadrature rule using 4 Gauss points and 4 weights and add it to results . Case of a vector-valued function. More... | |
static void | cs_quadrature_tria_7pts_vect (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 with a quadrature rule using 7 Gauss points and 7 weights and add it to results . Case of a vector-valued function. More... | |
static void | cs_quadrature_tria_1pt_tens (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 using a barycentric quadrature rule and add it to results . Case of a tensor-valued function. More... | |
static void | cs_quadrature_tria_3pts_tens (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 with a quadrature rule using 3 Gauss points and a unique weight and add it to results . Case of a tensor-valued function. More... | |
static void | cs_quadrature_tria_4pts_tens (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 with a quadrature rule using 4 Gauss points and 4 weights and add it to results . Case of a tensor-valued function. More... | |
static void | cs_quadrature_tria_7pts_tens (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 with a quadrature rule using 7 Gauss points and 7 weights and add it to results . Case of a tensor-valued function. More... | |
static void | cs_quadrature_tet_1pt_scal (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 using a barycentric quadrature rule and add it to results . Case of a scalar-valued function. More... | |
static void | cs_quadrature_tet_4pts_scal (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 with a quadrature rule using 4 Gauss points and a unique weight and add it to results . Case of a scalar-valued function. More... | |
static void | cs_quadrature_tet_5pts_scal (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 with a quadrature rule using 5 Gauss points and 5 weights and add it to results . Case of a scalar-valued function. More... | |
static void | cs_quadrature_tet_1pt_vect (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 using a barycentric quadrature rule and add it to results . Case of a vector-valued function. More... | |
static void | cs_quadrature_tet_4pts_vect (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 with a quadrature rule using 4 Gauss points and a unique weight and add it to results . Case of a vector-valued function. More... | |
static void | cs_quadrature_tet_5pts_vect (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 with a quadrature rule using 5 Gauss points and 5 weights and add it to results . Case of a vector-valued function. More... | |
static void | cs_quadrature_tet_1pt_tens (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 using a barycentric quadrature rule and add it to results . Case of a tensor-valued function. More... | |
static void | cs_quadrature_tet_4pts_tens (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 with a quadrature rule using 4 Gauss points and a unique weight and add it to results . Case of a tensor-valued function. More... | |
static void | cs_quadrature_tet_5pts_tens (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 with a quadrature rule using 5 Gauss points and 5 weights and add it to results Case of a tensor-valued function. More... | |
static void | cs_quadrature_hex_1pt_vect (double tcur, const cs_real_3_t vb, const double hx, const double hy, const double hz, cs_analytic_func_t *ana, void *input, double results[]) |
Compute the integral over a orthoganal hexahedron using a barycentric quadrature rule and add it to results . Case of a vector-valued function. More... | |
static void | cs_quadrature_hex_8pts_vect (double tcur, const cs_real_3_t vb, const double hx, const double hy, const double hz, cs_analytic_func_t *ana, void *input, double results[]) |
Compute the integral over an orthoganal hexahedron with a quadrature rule using 8 Gauss points and a unique weight and add it to results . Case of a vector-valued function. More... | |
static void | cs_quadrature_hex_27pts_vect (double tcur, const cs_real_3_t vb, const double hx, const double hy, const double hz, cs_analytic_func_t *ana, void *input, double results[]) |
Compute the integral over an orthogonal hexahedron with a quadrature rule using 27 Gauss points add it to results . Case of a vector-valued function. More... | |
static cs_quadrature_edge_integral_t * | cs_quadrature_get_edge_integral (int dim, cs_quadrature_type_t qtype) |
Retrieve the integral function according to the quadrature type and the stride provided Case of integral along edges. More... | |
static cs_quadrature_tria_integral_t * | cs_quadrature_get_tria_integral (int dim, cs_quadrature_type_t qtype) |
Retrieve the integral function according to the quadrature type and the stride provided. More... | |
static cs_quadrature_tetra_integral_t * | cs_quadrature_get_tetra_integral (int dim, cs_quadrature_type_t qtype) |
Retrieve the integral function according to the quadrature type and the stride provided. More... | |
static cs_quadrature_hexa_integral_t * | cs_quadrature_get_hexa_integral (int dim, cs_quadrature_type_t qtype) |
Retrieve the integral function according to the quadrature type and the stride provided for an hexahedron. 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 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
.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the edge |
[in] | v2 | second point of the edge |
[in] | len | length of the edge |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | len | length of edge [v1, v2] |
[in,out] | gpts | gauss points |
[in,out] | w | weight (same weight for the two points) |
typedef void() cs_quadrature_hexa_integral_t(double tcur, const cs_real_3_t vb, const double hx, const double hy, const double hz, cs_analytic_func_t *ana, void *input, double results[]) |
Compute the integral over an orthogonal hexahedron based on a specified quadrature rule and add it to results
.
[in] | tcur | current physical time of the simulation |
[in] | vb | barycenter |
[in] | hx | length along x-dir |
[in] | hy | length along y-dir |
[in] | hz | length along z-dir |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | v4 | fourth vertex |
[in] | vol | volume of tetrahedron {v1, v2, v3, v4} |
[in,out] | gpts | Gauss points |
[in,out] | weights | weigths related to each Gauss point |
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
.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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
.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | area | area of triangle {v1, v2, v3} |
[in,out] | gpts | Gauss points |
[in,out] | weights | weights values |
enum cs_quadrature_type_t |
Type of quadrature to use when computing an integral quantity. This rationale is used for integrals along edges/lines, over faces/surfaces or inside cells/volumes.
Enumerator | |
---|---|
CS_QUADRATURE_NONE | This is a P0-like approximation |
CS_QUADRATURE_BARY | Use the value at the cell center (should be the barycenter to get linear exactness) and multiply by the measure of the related support (length or surface or volume according to the support) |
CS_QUADRATURE_BARY_SUBDIV | Same as the CS_QUADRATURE_BARY but the support is divided into simplices. The value at the barycenter of each sub-simplices is used. |
CS_QUADRATURE_HIGHER |
|
CS_QUADRATURE_HIGHEST |
|
CS_QUADRATURE_N_TYPES |
|
inlinestatic |
Compute quadrature points for an edge from v1 -> v2 (2 points) Exact for polynomial function up to order 1.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | len | length of edge [v1, v2] |
[in,out] | gpts | gauss points |
[in,out] | w | weight (same weight for the two points) |
|
inlinestatic |
Compute the integral over an edge with the mid-point rule and add it to results
Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the edge |
[in] | v2 | second point of the edge |
[in] | len | length of the edge |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over an edge using a barycentric quadrature rule and add it to results
Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | 1st point of the triangle |
[in] | v2 | 2nd point of the triangle |
[in] | len | length of the edge |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | len | length of edge [v1, v2] |
[in,out] | gpts | gauss points |
[in,out] | w | weight (same weight for the two points) |
|
inlinestatic |
Compute the integral over an edge with a quadrature rule using 2 Gauss points and a unique weight and add it to results
Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the edge |
[in] | v2 | second point of the edge |
[in] | len | length of the edge |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over an edge with a quadrature rule using 2 Gauss points and a unique weight and add it to results
Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | 1st point of the triangle |
[in] | v2 | 2nd point of the triangle |
[in] | len | length of the edge |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | len | length of edge [v1, v2] |
[in,out] | gpts | gauss points |
[in,out] | w | weights |
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | len | length of edge [v1, v2] |
[in,out] | gpts | gauss points |
[in,out] | w | weights |
|
inlinestatic |
Compute the integral over an edge with a quadrature rule using 3 Gauss points and weights and add it to results
Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the edge |
[in] | v2 | second point of the edge |
[in] | len | length of the edge |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over an edge with a quadrature rule using 3 Gauss points and weights and add it to results
Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the edge |
[in] | v2 | second point of the edge |
[in] | len | length of the edge |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Retrieve the integral function according to the quadrature type and the stride provided Case of integral along edges.
[in] | dim | dimension of the function to integrate |
[in] | qtype | quadrature type |
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.
[in] | qtype | cs_quadrature_type_t |
[in] | loc | It could be CS_FLAG_CELL, CS_FLAG_FACE or CS_FLAG_EDGE plus CS_FLAG_PRIMAL or CS_FLAG_DUAL |
|
inlinestatic |
Retrieve the integral function according to the quadrature type and the stride provided for an hexahedron.
[in] | dim | dimension of the function to integrate |
[in] | qtype | quadrature type |
|
inlinestatic |
Retrieve the integral function according to the quadrature type and the stride provided.
[in] | dim | dimension of the function to integrate |
[in] | qtype | quadrature type |
|
inlinestatic |
Retrieve the integral function according to the quadrature type and the stride provided.
[in] | dim | dimension of the function to integrate |
[in] | qtype | quadrature type |
const char * cs_quadrature_get_type_name | ( | const cs_quadrature_type_t | type | ) |
Return th name associated to a type of quadrature.
[in] | type | cs_quadrature_type_t |
|
inlinestatic |
Compute quadrature points for an orthogonal hexahedron Exact for polynomial function up to order 1.
[in] | vb | barycenter |
[in] | hx | length along x-dir |
[in] | hy | length along y-dir |
[in] | hz | length along z-dir |
[in,out] | gpts | gauss points |
[in,out] | w | weight |
|
inlinestatic |
Compute the integral over a orthoganal hexahedron using a barycentric quadrature rule and add it to results
. Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | vb | barycenter |
[in] | hx | length along x-dir |
[in] | hy | length along y-dir |
[in] | hz | length along z-dir |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
void cs_quadrature_hex_27pts | ( | const cs_real_3_t | vb, |
const double | hx, | ||
const double | hy, | ||
const double | hz, | ||
cs_real_3_t | gpts[], | ||
double | w[] | ||
) |
Compute quadrature points for an orthogonal hexahedron Exact for polynomial function up to order 5.
[in] | vb | barycenter |
[in] | hx | length along x-dir |
[in] | hy | length along y-dir |
[in] | hz | length along z-dir |
[in,out] | gpts | gauss points |
[in,out] | w | weights |
|
inlinestatic |
Compute the integral over an orthogonal hexahedron with a quadrature rule using 27 Gauss points add it to results
. Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | vb | barycenter |
[in] | hx | length along x-dir |
[in] | hy | length along y-dir |
[in] | hz | length along z-dir |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
void cs_quadrature_hex_8pts | ( | const cs_real_3_t | vb, |
const double | hx, | ||
const double | hy, | ||
const double | hz, | ||
cs_real_3_t | gpts[], | ||
double * | w | ||
) |
Compute quadrature points for an orthogonal hexahedron Exact for polynomial function up to order 3.
[in] | vb | barycenter |
[in] | hx | length along x-dir |
[in] | hy | length along y-dir |
[in] | hz | length along z-dir |
[in,out] | gpts | gauss points |
[in,out] | w | weights |
|
inlinestatic |
Compute the integral over an orthoganal hexahedron with a quadrature rule using 8 Gauss points and a unique weight and add it to results
. Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | vb | barycenter |
[in] | hx | length along x-dir |
[in] | hy | length along y-dir |
[in] | hz | length along z-dir |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
void cs_quadrature_setup | ( | void | ) |
Compute constant weights for all quadratures used.
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).
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | v4 | fourth vertex |
[in] | vol | volume of tetrahedron {v1, v2, v3, v4} |
[in,out] | gpts | 15 Gauss points (size = 3*15) |
[in,out] | weights | 15 weigths related to each Gauss point |
|
inlinestatic |
Compute the quadrature in a tetrehedra. Exact for 1st order polynomials (order 2).
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | v4 | fourth vertex |
[in] | vol | volume of tetrahedron |
[in,out] | gpts | 1 Gauss point |
[in,out] | weight | weight related to this point (= volume) |
|
inlinestatic |
Compute the integral over a tetrahedron using a barycentric quadrature rule and add it to results
. Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a tetrahedron using a barycentric quadrature rule and add it to results
. Case of a tensor-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a tetrahedron using a barycentric quadrature rule and add it to results
. Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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).
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | v4 | fourth vertex |
[in] | vol | volume of tetrahedron {v1, v2, v3, v4} |
[in,out] | gpts | 4 Gauss points (size = 3*4) |
[in,out] | weights | weight (same value for all points) |
|
inlinestatic |
Compute the integral over a tetrahedron with a quadrature rule using 4 Gauss points and a unique weight and add it to results
. Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a tetrahedron with a quadrature rule using 4 Gauss points and a unique weight and add it to results
. Case of a tensor-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a tetrahedron with a quadrature rule using 4 Gauss points and a unique weight and add it to results
. Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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).
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | v4 | fourth vertex |
[in] | vol | volume of tetrahedron {v1, v2, v3, v4} |
[in,out] | gpts | 5 Gauss points (size = 3*5) |
[in,out] | weights | 5 weigths related to each Gauss point |
|
inlinestatic |
Compute the integral over a tetrahedron with a quadrature rule using 5 Gauss points and 5 weights and add it to results
. Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a tetrahedron with a quadrature rule using 5 Gauss points and 5 weights and add it to results
Case of a tensor-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a tetrahedron with a quadrature rule using 5 Gauss points and 5 weights and add it to results
. Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the tetrahedron |
[in] | v2 | second point of the tetrahedron |
[in] | v3 | third point of the tetrahedron |
[in] | v4 | fourth point of the tetrahedron |
[in] | vol | volume of the tetrahedron |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute quadrature points for a triangle (1 point) Exact for polynomial function up to order 1 (barycentric approx.)
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | area | area of triangle {v1, v2, v3} |
[in,out] | gpts | gauss points |
[in,out] | w | weight |
|
inlinestatic |
Compute the integral over a triangle using a barycentric quadrature rule and add it to results
Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a triangle using a barycentric quadrature rule and add it to results
. Case of a tensor-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a triangle using a barycentric quadrature rule and add it to results
Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | 1st point of the triangle |
[in] | v2 | 2nd point of the triangle |
[in] | v3 | 3rd point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | area | area of triangle {v1, v2, v3} |
[in,out] | gpts | gauss points |
[in,out] | w | weight (same weight for the three points) |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 3 Gauss points and a unique weight and add it to results
Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 3 Gauss points and a unique weight and add it to results
. Case of a tensor-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 3 Gauss points and a unique weight and add it to results
Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | area | area of triangle {v1, v2, v3} |
[in,out] | gpts | gauss points |
[in,out] | w | weights |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 4 Gauss points and 4 weights and add it to results
Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 4 Gauss points and 4 weights and add it to results
. Case of a tensor-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 4 Gauss points and 4 weights and add it to results
. Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
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.
[in] | v1 | first vertex |
[in] | v2 | second vertex |
[in] | v3 | third vertex |
[in] | area | area of triangle {v1, v2, v3} |
[in,out] | gpts | gauss points |
[in,out] | w | weights |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 7 Gauss points and 7 weights and add it to results
Case of a scalar-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 7 Gauss points and 7 weights and add it to results
. Case of a tensor-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |
|
inlinestatic |
Compute the integral over a triangle with a quadrature rule using 7 Gauss points and 7 weights and add it to results
. Case of a vector-valued function.
[in] | tcur | current physical time of the simulation |
[in] | v1 | first point of the triangle |
[in] | v2 | second point of the triangle |
[in] | v3 | third point of the triangle |
[in] | area | area of the triangle |
[in] | ana | pointer to the analytic function |
[in] | input | null or pointer to a structure cast on-the-fly |
[in,out] | results | array of double |