gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
OctreePost.h
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #ifndef OCTREE_POST_H
7 #define OCTREE_POST_H
8 
9 #include "Octree.h"
10 
11 class PView;
12 class PViewData;
13 class PViewDataList;
14 class PViewDataGModel;
15 
16 class OctreePost {
17 private:
18  Octree *_sp, *_vp, *_tp;
19  Octree *_sl, *_vl, *_tl;
20  Octree *_st, *_vt, *_tt;
21  Octree *_sq, *_vq, *_tq;
22  Octree *_ss, *_vs, *_ts;
23  Octree *_sh, *_vh, *_th;
24  Octree *_si, *_vi, *_ti;
25  Octree *_sy, *_vy, *_ty;
28  void _create(PViewData *data);
29  bool _getValue(void *in, int dim, int nbNod, int nbComp, double P[3],
30  int step, double *values, double *elementSize, bool grad);
31  bool _getValue(void *in, int nbComp, double P[3], int step, double *values,
32  double *elementSize, bool grad);
33 
34 public:
35  OctreePost(PView *v);
36  OctreePost(PViewData *data);
37  ~OctreePost();
38  // search for the value of the View at point x, y, z. Values are interpolated
39  // using standard first order shape functions in the post element. If several
40  // time steps are present, they are all interpolated unless time step is set
41  // to a different value than -1. If qn is given, n node coordinates stored in
42  // qx/y/z are used to select which element is used to interpolate (if the
43  // query returned more than one). If grad is true, return the component-wise
44  // derivative (gradient) in xyz coordinates instead of the value. If dim !=
45  // -1, only return a value if it was found on an element of the
46  // prescribed dimension.
47  bool searchScalar(double x, double y, double z, double *values, int step = -1,
48  double *size = nullptr, int qn = 0, double *qx = nullptr,
49  double *qy = nullptr, double *qz = nullptr,
50  bool grad = false, int dim = -1);
51  bool searchVector(double x, double y, double z, double *values, int step = -1,
52  double *size = nullptr, int qn = 0, double *qx = nullptr,
53  double *qy = nullptr, double *qz = nullptr,
54  bool grad = false, int dim = -1);
55  bool searchTensor(double x, double y, double z, double *values, int step = -1,
56  double *size = nullptr, int qn = 0, double *qx = nullptr,
57  double *qy = nullptr, double *qz = nullptr,
58  bool grad = false, int dim = -1);
59 };
60 
61 #endif
OctreePost::_th
Octree * _th
Definition: OctreePost.h:23
OctreePost::~OctreePost
~OctreePost()
Definition: OctreePost.cpp:238
OctreePost::_theViewDataList
PViewDataList * _theViewDataList
Definition: OctreePost.h:26
PView
Definition: PView.h:27
OctreePost::_si
Octree * _si
Definition: OctreePost.h:24
OctreePost::_sq
Octree * _sq
Definition: OctreePost.h:21
OctreePost::_ts
Octree * _ts
Definition: OctreePost.h:22
PViewDataGModel
Definition: PViewDataGModel.h:191
OctreePost::searchScalar
bool searchScalar(double x, double y, double z, double *values, int step=-1, double *size=nullptr, int qn=0, double *qx=nullptr, double *qy=nullptr, double *qz=nullptr, bool grad=false, int dim=-1)
Definition: OctreePost.cpp:578
PViewDataList
Definition: PViewDataList.h:17
Octree.h
OctreePost::_ti
Octree * _ti
Definition: OctreePost.h:24
OctreePost::_ty
Octree * _ty
Definition: OctreePost.h:25
OctreePost
Definition: BoundaryLayers.cpp:23
OctreePost::_sh
Octree * _sh
Definition: OctreePost.h:23
OctreePost::_vh
Octree * _vh
Definition: OctreePost.h:23
OctreePost::_tp
Octree * _tp
Definition: OctreePost.h:18
OctreePost::_getValue
bool _getValue(void *in, int dim, int nbNod, int nbComp, double P[3], int step, double *values, double *elementSize, bool grad)
Definition: OctreePost.cpp:479
OctreePost::_st
Octree * _st
Definition: OctreePost.h:20
OctreePost::_vs
Octree * _vs
Definition: OctreePost.h:22
OctreePost::_vp
Octree * _vp
Definition: OctreePost.h:18
OctreePost::_sl
Octree * _sl
Definition: OctreePost.h:19
Octree
Definition: OctreeInternals.h:51
OctreePost::_vt
Octree * _vt
Definition: OctreePost.h:20
OctreePost::_tt
Octree * _tt
Definition: OctreePost.h:20
PViewData
Definition: PViewData.h:29
OctreePost::_sp
Octree * _sp
Definition: OctreePost.h:18
OctreePost::_ss
Octree * _ss
Definition: OctreePost.h:22
OctreePost::searchVector
bool searchVector(double x, double y, double z, double *values, int step=-1, double *size=nullptr, int qn=0, double *qx=nullptr, double *qy=nullptr, double *qz=nullptr, bool grad=false, int dim=-1)
Definition: OctreePost.cpp:634
OctreePost::_theViewDataGModel
PViewDataGModel * _theViewDataGModel
Definition: OctreePost.h:27
z
const double z
Definition: GaussQuadratureQuad.cpp:56
OctreePost::_vi
Octree * _vi
Definition: OctreePost.h:24
OctreePost::_vq
Octree * _vq
Definition: OctreePost.h:21
OctreePost::_create
void _create(PViewData *data)
Definition: OctreePost.cpp:273
OctreePost::_tl
Octree * _tl
Definition: OctreePost.h:19
OctreePost::_tq
Octree * _tq
Definition: OctreePost.h:21
OctreePost::_sy
Octree * _sy
Definition: OctreePost.h:25
OctreePost::_vl
Octree * _vl
Definition: OctreePost.h:19
OctreePost::OctreePost
OctreePost(PView *v)
Definition: OctreePost.cpp:266
OctreePost::_vy
Octree * _vy
Definition: OctreePost.h:25
OctreePost::searchTensor
bool searchTensor(double x, double y, double z, double *values, int step=-1, double *size=nullptr, int qn=0, double *qx=nullptr, double *qy=nullptr, double *qz=nullptr, bool grad=false, int dim=-1)
Definition: OctreePost.cpp:690