Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
findpts_local_ext.c
Go to the documentation of this file.
1 #include <stddef.h>
2 #include <stdlib.h>
3 #include <float.h>
4 #include <math.h>
5 #include <string.h>
6 #include "../c99.h"
7 #include "../name.h"
8 #include "../fail.h"
9 #include "../mem.h"
10 #include "../types.h"
11 #include "../poly.h"
12 #include "../obbox.h"
13 #include "../findpts_el.h"
14 #include "../findpts_local.h"
15 
16 #define findpts_local_setup PREFIXED_NAME(findpts_local_setup)
17 #define findpts_local_free PREFIXED_NAME(findpts_local_free )
18 #define findpts_local PREFIXED_NAME(findpts_local )
19 #define findpts_local_eval PREFIXED_NAME(findpts_local_eval )
20 
22  unsigned dim; /* 2 or 3 */
24  union {
27  } fld;
28 };
29 
31  const unsigned dim,
32  const double *const elx[], const unsigned n[], const uint nel,
33  const unsigned m[], const double bbox_tol, const uint max_hash_size,
34  const uint npt_max, const double newt_tol)
35 {
36  struct findpts_local_data *p = tmalloc(struct findpts_local_data, 1);
37 
38  p->dim = dim;
39  memset(&p->buf,0,sizeof(buffer));
40  if(dim==2)
41  findpts_local_setup_2(&p->fld.d2, elx,n,nel, m, bbox_tol,
42  max_hash_size, npt_max, newt_tol);
43  else
44  findpts_local_setup_3(&p->fld.d3, elx,n,nel, m, bbox_tol,
45  max_hash_size, npt_max, newt_tol);
46 
47  return p;
48 }
49 
51 {
52  buffer_free(&p->buf);
53  if(p->dim==2) findpts_local_free_2(&p->fld.d2);
54  else findpts_local_free_3(&p->fld.d3);
55  free(p);
56 }
57 
59  uint *const code_base , const unsigned code_stride ,
60  uint *const el_base , const unsigned el_stride ,
61  double *const r_base , const unsigned r_stride ,
62  double *const dist2_base , const unsigned dist2_stride ,
63  const double *const x_base[], const unsigned x_stride[],
64  const uint npt, struct findpts_local_data *const p)
65 {
66  if(p->dim==2) findpts_local_2(code_base, code_stride,
67  el_base, el_stride,
68  r_base, r_stride,
69  dist2_base,dist2_stride,
70  x_base, x_stride,
71  npt, &p->fld.d2, &p->buf);
72  else findpts_local_3(code_base, code_stride,
73  el_base, el_stride,
74  r_base, r_stride,
75  dist2_base,dist2_stride,
76  x_base, x_stride,
77  npt, &p->fld.d3, &p->buf);
78 }
79 
81  double *const out_base, const unsigned out_stride,
82  const uint *const el_base, const unsigned el_stride,
83  const double *const r_base, const unsigned r_stride,
84  const uint npt,
85  const double *const in, struct findpts_local_data *const p)
86 {
87  if(p->dim==2) findpts_local_eval_2(out_base, out_stride,
88  el_base, el_stride,
89  r_base, r_stride,
90  npt, in, &p->fld.d2);
91  else findpts_local_eval_3(out_base, out_stride,
92  el_base, el_stride,
93  r_base, r_stride,
94  npt, in, &p->fld.d3);
95 }
96 
#define uint
Definition: types.h:70
void findpts_local_free_2(struct findpts_local_data_2 *const fd)
#define buffer_free(b)
Definition: mem.h:158
#define tmalloc(type, count)
Definition: mem.h:91
struct findpts_local_data_2 d2
void findpts_local_eval_2(double *const out_base, const unsigned out_stride, const uint *const el_base, const unsigned el_stride, const double *const r_base, const unsigned r_stride, const uint npt, const double *const in, struct findpts_local_data_2 *const fd)
void findpts_local_free_3(struct findpts_local_data_3 *const fd)
n
Definition: xxt_test.m:73
#define findpts_local_setup
void findpts_local_2(uint *const code_base, const unsigned code_stride, uint *const el_base, const unsigned el_stride, double *const r_base, const unsigned r_stride, double *const dist2_base, const unsigned dist2_stride, const double *const x_base[2], const unsigned x_stride[2], const uint npt, struct findpts_local_data_2 *const fd, buffer *buf)
void findpts_local_3(uint *const code_base, const unsigned code_stride, uint *const el_base, const unsigned el_stride, double *const r_base, const unsigned r_stride, double *const dist2_base, const unsigned dist2_stride, const double *const x_base[3], const unsigned x_stride[3], const uint npt, struct findpts_local_data_3 *const fd, buffer *buf)
p
Definition: xxt_test2.m:1
void findpts_local_setup_3(struct findpts_local_data_3 *const fd, const double *const elx[3], const unsigned n[3], const uint nel, const unsigned m[3], const double bbox_tol, const uint max_hash_size, const unsigned npt_max, const double newt_tol)
Definition: mem.h:111
void findpts_local_setup_2(struct findpts_local_data_2 *const fd, const double *const elx[2], const unsigned n[2], const uint nel, const unsigned m[2], const double bbox_tol, const uint max_hash_size, const unsigned npt_max, const double newt_tol)
static double elx[NR *NS]
#define findpts_local
#define findpts_local_eval
union findpts_local_data::@0 fld
void findpts_local_eval_3(double *const out_base, const unsigned out_stride, const uint *const el_base, const unsigned el_stride, const double *const r_base, const unsigned r_stride, const uint npt, const double *const in, struct findpts_local_data_3 *const fd)
#define findpts_local_free
struct findpts_local_data_3 d3