1 #ifndef __CS_QUADRATURE_H__
2 #define __CS_QUADRATURE_H__
253 gpts[0][0] = 0.5*(v1[0] + v2[0]);
254 gpts[0][1] = 0.5*(v1[1] + v2[1]);
255 gpts[0][2] = 0.5*(v1[2] + v2[2]);
417 gpts[0][0] = 0.25 * (v1[0] + v2[0] + v3[0] + v4[0]);
418 gpts[0][1] = 0.25 * (v1[1] + v2[1] + v3[1] + v4[1]);
419 gpts[0][2] = 0.25 * (v1[2] + v2[2] + v3[2] + v4[2]);
524 xg[0] = .5 * (v1[0] + v2[0]);
525 xg[1] = .5 * (v1[1] + v2[1]);
526 xg[2] = .5 * (v1[2] + v2[2]);
529 ana(tcur, 1, NULL, xg,
false, input, &feval);
532 *results += len * feval;
561 double feval[2], weights[2];
567 ana(tcur, 2, NULL, (
const cs_real_t *)gauss_pts,
false, input, feval);
570 *results += weights[0] * feval[0] + weights[1] * feval[1];
599 double feval[3], weights[3];
605 ana(tcur, 3, NULL, (
const cs_real_t *)gauss_pts,
false, input, feval);
608 *results += weights[0]*feval[0] + weights[1]*feval[1] + weights[2]*feval[2];
640 xg[0] = .5 * (v1[0] + v2[0]);
641 xg[1] = .5 * (v1[1] + v2[1]);
642 xg[2] = .5 * (v1[2] + v2[2]);
645 ana(tcur, 1, NULL, xg,
false, input, feval);
648 results[0] += len * feval[0];
649 results[1] += len * feval[1];
650 results[2] += len * feval[2];
679 double feval[6], weights[2];
685 ana(tcur, 2, NULL, (
const cs_real_t *)gauss_pts,
false, input, feval);
688 results[0] += weights[0] * feval[0] + weights[1] * feval[3];
689 results[1] += weights[0] * feval[1] + weights[1] * feval[4];
690 results[2] += weights[0] * feval[2] + weights[1] * feval[5];
719 double feval[9], weights[3];
725 ana(tcur, 3, NULL, (
const cs_real_t *)gauss_pts,
false, input, feval);
728 for (
int p = 0;
p < 3;
p++) {
729 results[0] += weights[
p] * feval[3*
p ];
730 results[1] += weights[
p] * feval[3*
p+1];
731 results[2] += weights[
p] * feval[3*
p+2];
770 ana(tcur, 1, NULL, xg,
false, input, &evaluation);
772 *results += area * evaluation;
803 double evaluation[3], weights[3];
808 ana(tcur, 3, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
811 *results += weights[0] * evaluation[0] + weights[1] * evaluation[1] +
812 weights[2] * evaluation[2];
843 double evaluation[4], weights[4];
848 ana(tcur, 4, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
850 *results += weights[0] * evaluation[0] + weights[1] * evaluation[1] +
851 weights[2] * evaluation[2] + weights[3] * evaluation[3];
882 double evaluation[7], weights[7];
887 ana(tcur, 7, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
889 *results += weights[0] * evaluation[0] + weights[1] * evaluation[1] +
890 weights[2] * evaluation[2] + weights[3] * evaluation[3] +
891 weights[4] * evaluation[4] + weights[5] * evaluation[5] +
892 weights[6] * evaluation[6] ;
923 double evaluation[3];
930 ana(tcur, 1, NULL, xg,
false, input, evaluation);
932 results[0] += area * evaluation[0];
933 results[1] += area * evaluation[1];
934 results[2] += area * evaluation[2];
965 double evaluation[3*3], weights[3];
970 ana(tcur, 3, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
972 for (
int p = 0;
p < 3;
p++) {
973 results[0] += weights[
p] * evaluation[3*
p ];
974 results[1] += weights[
p] * evaluation[3*
p+1];
975 results[2] += weights[
p] * evaluation[3*
p+2];
1007 double evaluation[3*4], weights[4];
1012 ana(tcur, 4, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1014 for (
int p = 0;
p < 4;
p++) {
1015 results[0] += weights[
p] * evaluation[3*
p ];
1016 results[1] += weights[
p] * evaluation[3*
p+1];
1017 results[2] += weights[
p] * evaluation[3*
p+2];
1049 double evaluation[3*7], weights[7];
1054 ana(tcur, 7, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1056 for (
int p = 0;
p < 7;
p++) {
1057 results[0] += weights[
p] * evaluation[3*
p ];
1058 results[1] += weights[
p] * evaluation[3*
p+1];
1059 results[2] += weights[
p] * evaluation[3*
p+2];
1091 double evaluation[9];
1098 ana(tcur, 1, NULL, xg,
false, input, evaluation);
1100 for (
short int ij = 0; ij < 9; ij++)
1101 results[ij] += area * evaluation[ij];
1132 double evaluation[9*3], weights[3];
1137 ana(tcur, 3, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1139 for (
int p = 0;
p < 3;
p++) {
1140 const double wp = weights[
p];
1141 double *eval_p = evaluation + 9*
p;
1142 for (
short int ij = 0; ij < 9; ij++)
1143 results[ij] += wp * eval_p[ij];
1175 double evaluation[9*4], weights[4];
1180 ana(tcur, 4, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1182 for (
int p = 0;
p < 4;
p++) {
1183 const double wp = weights[
p];
1184 double *eval_p = evaluation + 9*
p;
1185 for (
short int ij = 0; ij < 9; ij++)
1186 results[ij] += wp * eval_p[ij];
1218 double evaluation[9*7], weights[7];
1223 ana(tcur, 7, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1225 for (
int p = 0;
p < 7;
p++) {
1226 const double wp = weights[
p];
1227 double *eval_p = evaluation + 9*
p;
1228 for (
short int ij = 0; ij < 9; ij++)
1229 results[ij] += wp * eval_p[ij];
1266 xg[0] = 0.25 * (v1[0] + v2[0] + v3[0] + v4[0]);
1267 xg[1] = 0.25 * (v1[1] + v2[1] + v3[1] + v4[1]);
1268 xg[2] = 0.25 * (v1[2] + v2[2] + v3[2] + v4[2]);
1270 ana(tcur, 1, NULL, xg,
false, input, &evaluation);
1272 *results += vol * evaluation;
1305 double evaluation[4], weights[4];
1310 ana(tcur, 4, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1313 *results += weights[0] * evaluation[0] + weights[1] * evaluation[1] +
1314 weights[2] * evaluation[2] + weights[3] * evaluation[3];
1347 double evaluation[5], weights[5];
1352 ana(tcur, 5, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1354 *results += weights[0] * evaluation[0] + weights[1] * evaluation[1] +
1355 weights[2] * evaluation[2] + weights[3] * evaluation[3] +
1356 weights[4] * evaluation[4];
1389 double evaluation[3];
1392 xg[0] = 0.25 * (v1[0] + v2[0] + v3[0] + v4[0]);
1393 xg[1] = 0.25 * (v1[1] + v2[1] + v3[1] + v4[1]);
1394 xg[2] = 0.25 * (v1[2] + v2[2] + v3[2] + v4[2]);
1396 ana(tcur, 1, NULL, xg,
false, input, evaluation);
1398 results[0] += vol * evaluation[0];
1399 results[1] += vol * evaluation[1];
1400 results[2] += vol * evaluation[2];
1433 double evaluation[3*4], weights[4];
1438 ana(tcur, 4, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1440 for (
int p = 0;
p < 4;
p++) {
1441 results[0] += weights[
p] * evaluation[3*
p ];
1442 results[1] += weights[
p] * evaluation[3*
p+1];
1443 results[2] += weights[
p] * evaluation[3*
p+2];
1477 double evaluation[3*5], weights[5];
1482 ana(tcur, 5, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1484 for (
int p = 0;
p < 5;
p++) {
1485 results[0] += weights[
p] * evaluation[3*
p ];
1486 results[1] += weights[
p] * evaluation[3*
p+1];
1487 results[2] += weights[
p] * evaluation[3*
p+2];
1521 double evaluation[9];
1524 xg[0] = 0.25 * (v1[0] + v2[0] + v3[0] + v4[0]);
1525 xg[1] = 0.25 * (v1[1] + v2[1] + v3[1] + v4[1]);
1526 xg[2] = 0.25 * (v1[2] + v2[2] + v3[2] + v4[2]);
1528 ana(tcur, 1, NULL, xg,
false, input, evaluation);
1530 for (
short int ij = 0; ij < 9; ij++)
1531 results[ij] += vol * evaluation[ij];
1564 double evaluation[9*4], weights[4];
1569 ana(tcur, 4, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1571 for (
int p = 0;
p < 4;
p++) {
1572 const double wp = weights[
p];
1573 double *eval_p = evaluation + 9*
p;
1574 for (
short int ij = 0; ij < 9; ij++)
1575 results[ij] += wp * eval_p[ij];
1609 double evaluation[9*5], weights[5];
1614 ana(tcur, 5, NULL, (
const cs_real_t *)gauss_pts,
false, input, evaluation);
1616 for (
int p = 0;
p < 5;
p++) {
1617 const double wp = weights[
p];
1618 double *eval_p = evaluation + 9*
p;
1619 for (
short int ij = 0; ij < 9; ij++)
1620 results[ij] += wp * eval_p[ij];
1657 " %s: Invalid quadrature type\n", __func__);
1675 " %s: Invalid quadrature type\n", __func__);
1681 " %s: Invalid dimension value %d. Only 1 and 3 are valid.\n",
1721 " %s: Invalid quadrature type\n", __func__);
1739 " %s: Invalid quadrature type\n", __func__);
1757 " %s: Invalid quadrature type\n", __func__);
1763 " %s: Invalid dimension value %d. Only 1, 3 and 9 are valid.\n",
1803 " %s: Invalid quadrature type\n", __func__);
1821 " %s: Invalid quadrature type\n", __func__);
1839 " %s: Invalid quadrature type\n", __func__);
1845 " %s: Invalid dimension value %d. Only 1, 3 and 9 are valid.\n",
void bft_error(const char *const file_name, const int line_num, const int sys_error_code, const char *const format,...)
Calls the error handler (set by bft_error_handler_set() or default).
Definition: bft_error.c:193
#define BEGIN_C_DECLS
Definition: cs_defs.h:514
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:334
#define END_C_DECLS
Definition: cs_defs.h:515
unsigned short int cs_flag_t
Definition: cs_defs.h:321
@ p
Definition: cs_field_pointer.h:67
unsigned int cs_eflag_t
Definition: cs_flag.h:190
const cs_real_t cs_math_1ov3
void() cs_analytic_func_t(cs_real_t time, cs_lnum_t n_elts, const cs_lnum_t *elt_ids, const cs_real_t *coords, bool dense_output, void *input, cs_real_t *retval)
Generic function pointer for an evaluation relying on an analytic function.
Definition: cs_param_types.h:127
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 integ...
Definition: cs_quadrature.h:1638
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).
Definition: cs_quadrature.c:381
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-valu...
Definition: cs_quadrature.h:512
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 weig...
Definition: cs_quadrature.h:1422
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).
Definition: cs_quadrature.h:409
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...
Definition: cs_quadrature.h:1336
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 ...
Definition: cs_quadrature.h:590
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...
Definition: cs_quadrature.h:1598
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 ad...
Definition: cs_quadrature.h:833
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 ad...
Definition: cs_quadrature.h:872
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.
Definition: cs_quadrature.c:300
cs_quadrature_type_t
Definition: cs_quadrature.h:52
@ CS_QUADRATURE_BARY
Definition: cs_quadrature.h:55
@ CS_QUADRATURE_HIGHER
Definition: cs_quadrature.h:57
@ CS_QUADRATURE_NONE
Definition: cs_quadrature.h:54
@ CS_QUADRATURE_N_TYPES
Definition: cs_quadrature.h:59
@ CS_QUADRATURE_BARY_SUBDIV
Definition: cs_quadrature.h:56
@ CS_QUADRATURE_HIGHEST
Definition: cs_quadrature.h:58
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.
Definition: cs_quadrature.h:169
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....
Definition: cs_quadrature.h:1510
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...
Definition: cs_quadrature.h:670
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 ad...
Definition: cs_quadrature.h:1165
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.
Definition: cs_quadrature.h:98
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 or...
Definition: cs_quadrature.h:247
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 ad...
Definition: cs_quadrature.h:997
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....
Definition: cs_quadrature.h:1378
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...
Definition: cs_quadrature.h:1466
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 or...
Definition: cs_quadrature.c:198
void cs_quadrature_setup(void)
Compute constant weights for all quadratures used.
Definition: cs_quadrature.c:107
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 ad...
Definition: cs_quadrature.h:1039
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 or...
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...
Definition: cs_quadrature.h:552
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....
Definition: cs_quadrature.h:1252
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 ...
Definition: cs_quadrature.h:955
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 o...
Definition: cs_quadrature.h:753
const char * cs_quadrature_get_type_name(const cs_quadrature_type_t type)
Return th name associated to a type of quadrature.
Definition: cs_quadrature.c:149
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 weig...
Definition: cs_quadrature.h:1294
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 (baryc...
Definition: cs_quadrature.h:314
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.
Definition: cs_quadrature.c:265
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.
Definition: cs_quadrature.h:196
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.
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).
Definition: cs_quadrature.c:425
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 o...
Definition: cs_quadrature.h:913
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 ...
Definition: cs_quadrature.h:793
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.
Definition: cs_quadrature.h:77
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.
Definition: cs_quadrature.h:1702
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...
Definition: cs_quadrature.h:628
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.
Definition: cs_quadrature.h:120
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.
Definition: cs_quadrature.h:144
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.
Definition: cs_quadrature.h:1784
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 ...
Definition: cs_quadrature.h:1122
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 ad...
Definition: cs_quadrature.h:1208
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).
Definition: cs_quadrature.c:341
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 sho...
Definition: cs_quadrature.c:488
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 ...
Definition: cs_quadrature.h:710
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....
Definition: cs_quadrature.h:1081
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 weig...
Definition: cs_quadrature.h:1553