Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PN_patch.h
Go to the documentation of this file.
1 /* *******************************************************************
2  * Rocstar Simulation Suite *
3  * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4  * *
5  * Illinois Rocstar LLC *
6  * Champaign, IL *
7  * www.illinoisrocstar.com *
8  * sales@illinoisrocstar.com *
9  * *
10  * License: See LICENSE file in top level of distribution package or *
11  * http://opensource.org/licenses/NCSA *
12  *********************************************************************/
13 /* *******************************************************************
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17  * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21  * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22  *********************************************************************/
23 #ifndef __PN_PATCH_H__
24 #define __PN_PATCH_H__
25 
26 #include "mopbasic.h"
27 
29 
30 // Only need at most three coords, b_n = 1-(sum_{i=1}^{n-1}b_i)
31 Vector_3<double> PN_project(std::vector<int *> v_ids,
32  Vector_3<double> bcoords,
33  const Vector_3<double> *pnts,
34  const Vector_3<double> *vnrms,
35  const Vector_3<double> *evects,
36  const Vector_3<double> *evals,
37  const Vector_3<double> *bs,
38  const int * tranks,
39  std::vector<bool> is_ridge[4]);
40 
41 void project_edge(int v_id, int t_id, int id3,// Nodal ids
42  Vector_3<double> v_crd, // PN coordinates
43  Vector_3<double> t_crd,
44  Vector_3<double> & p_crd,
45  Vector_3<double> & p2_crd,
46  const Vector_3<double> * pnts, // Nodal coords
47  const Vector_3<double> * vnrms, // Normals
48  const Vector_3<double> * evects, // Eigenvectors
49  const Vector_3<double> * evals,
50  const Vector_3<double> * bs,
51  const int* tranks, // Tangent ranks
52  bool is_ridge); // Is the edge on a ridge?
53 
54 Vector_3<double> one_sided_normal(int id1, int id2, int id3,
55  const Vector_3<double> *evects,
56  const Vector_3<double> *pnts,
57  const Vector_3<double> *evals,
58  const Vector_3<double> *vnorms,
59  const Vector_3<double> *bs);
60 
62 
63 #endif
64 
65 
66 
67 
68 
69 
MOP_BEGIN_NAMESPACE Vector_3< double > PN_project(std::vector< int * > v_ids, Vector_3< double > bcoords, const Vector_3< double > *pnts, const Vector_3< double > *vnrms, const Vector_3< double > *evects, const Vector_3< double > *evals, const Vector_3< double > *bs, const int *tranks, std::vector< bool > is_ridge[4])
Vector_3< double > one_sided_normal(int id1, int id2, int id3, const Vector_3< double > *evects, const Vector_3< double > *pnts, const Vector_3< double > *evals, const Vector_3< double > *vnorms, const Vector_3< double > *bs)
Definition: PN_patch.C:156
#define MOP_END_NAMESPACE
Definition: mopbasic.h:29
void project_edge(int v_id, int t_id, int id3, Vector_3< double > v_crd, Vector_3< double > t_crd, Vector_3< double > &p_crd, Vector_3< double > &p2_crd, const Vector_3< double > *pnts, const Vector_3< double > *vnrms, const Vector_3< double > *evects, const Vector_3< double > *evals, const Vector_3< double > *bs, const int *tranks, bool is_ridge)
Definition: PN_patch.C:103
#define MOP_BEGIN_NAMESPACE
Definition: mopbasic.h:28