svMultiPhysics
Loading...
Searching...
No Matches
nn.h
1/* Copyright (c) Stanford University, The Regents of the University of California, and others.
2 *
3 * All Rights Reserved.
4 *
5 * See Copyright-SimVascular.txt for additional details.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining
8 * a copy of this software and associated documentation files (the
9 * "Software"), to deal in the Software without restriction, including
10 * without limitation the rights to use, copy, modify, merge, publish,
11 * distribute, sublicense, and/or sell copies of the Software, and to
12 * permit persons to whom the Software is furnished to do so, subject
13 * to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included
16 * in all copies or substantial portions of the Software.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
19 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
22 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31#ifndef NN_H
32#define NN_H
33
34#include "Simulation.h"
35#include "ComMod.h"
36#include "consts.h"
37
38namespace nn {
39
40 void get_gip(const int insd, consts::ElementType eType, const int nG, Vector<double>& w, Array<double>& xi);
41 void get_gip(Simulation* simulation, faceType& face);
42 void get_gip(mshType& mesh);
43
44 void get_gnn(const int insd, consts::ElementType eType, const int eNoN, const int g, Array<double>& xi,
45 Array<double>& N, Array3<double>& Nx);
46 void get_gnn(const int insd, consts::ElementType eType, const int eNoN, Vector<double>& xi, Vector<double>& N,
47 Array<double>& Nx);
48
49 void get_gnn(Simulation* simulation, int gaus_pt, faceType& face);
50 void get_gnn(int gaus_pt, mshType& mesh);
51 void get_gn_nxx(const int insd, const int ind2, consts::ElementType eType, const int eNoN, const int gaus_pt,
52 const Array<double>& xi, Array3<double>& Nxx);
53
54 void get_nn_bnds(const int nsd, consts::ElementType eType, const int eNoN, Array<double>& xib, Array<double>& Nb);
55 void get_nn_bnds(const ComMod& com_mod, mshType& mesh);
56
57 void get_nnx(const int nsd, const consts::ElementType eType, const int eNoN, const Array<double>& xl,
58 const Array<double>& xib, const Array<double>& Nb, const Vector<double>& xp, Vector<double>& xi,
59 Vector<double>& N, Array<double>& Nx);
60
61 void get_xi(const int nsd, consts::ElementType eType, const int eNoN, const Array<double>& xl, const Vector<double>& xp,
62 Vector<double>& xi, bool& flag);
63
64 void gnn(const int eNoN, const int nsd, const int insd, Array<double>& Nxi, Array<double>& x, Array<double>& Nx,
65 double& Jac, Array<double>& ks);
66
67 void gnnb(const ComMod& com_mod, const faceType& lFa, const int e, const int g, const int nsd, const int insd,
68 const int eNoNb, const Array<double>& Nx, Vector<double>& n, consts::MechanicalConfigurationType cfg=consts::MechanicalConfigurationType::reference);
69
70 void gnns(const int nsd, const int eNoN, const Array<double>& Nxi, Array<double>& xl, Vector<double>& nV,
71 Array<double>& gCov, Array<double>& gCnv);
72
73 void gn_nxx(const int l, const int eNoN, const int nsd, const int insd, Array<double>& Nxi, Array<double>& Nxi2, Array<double>& lx,
74 Array<double>& Nx, Array<double>& Nxx);
75
76 void select_ele(const ComMod& com_mod, mshType& mesh);
77
78 void select_eleb(Simulation* simulation, mshType& mesh, faceType& face);
79
80};
81
82#endif
83
The Array3 template class implements a simple interface to 3D arrays.
Definition Array3.h:52
The ComMod class duplicates the data structures in the Fortran COMMOD module defined in MOD....
Definition ComMod.h:1354
Definition Simulation.h:41
The Vector template class is used for storing int and double data.
Definition Vector.h:50
The face type containing mesh at boundary.
Definition ComMod.h:521
This is the container for a mesh or NURBS patch, those specific to NURBS are noted.
Definition ComMod.h:832