PoissonMatrixQuadratic.h
Go to the documentation of this file.
1 //
2 // This file is part of the FFEA simulation package
3 //
4 // Copyright (c) by the Theory and Development FFEA teams,
5 // as they appear in the README.md file.
6 //
7 // FFEA is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // FFEA is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with FFEA. If not, see <http://www.gnu.org/licenses/>.
19 //
20 // To help us fund FFEA development, we humbly ask that you cite
21 // the research papers on the package.
22 //
23 
24 #ifndef POISSONMATRIXQUADRATIC_H_INCLUDED
25 #define POISSONMATRIXQUADRATIC_H_INCLUDED
26 
27 #define NUM_ELEMENTS_LOWER_TRIANGULAR_10X10 55
28 
29 #define GRAD_PSI_1 0
30 #define GRAD_PSI_2 1
31 #define GRAD_PSI_3 2
32 #define GRAD_PSI_4 3
33 #define GRAD_PSI_5 4
34 #define GRAD_PSI_6 5
35 #define GRAD_PSI_7 6
36 #define GRAD_PSI_8 7
37 #define GRAD_PSI_9 8
38 #define GRAD_PSI_10 9
39 
40 #define NUM_TET_GAUSS_QUAD_POINTS 14
41 
42 #include "SecondOrderFunctions.h"
43 
45 public:
47 
48  scalar * get_K_alpha_mem_loc(int i, int j);
49 
50  void build(mesh_node *n[10], scalar epsilon);
51 
52  scalar get_K_alpha_value(int i, int j);
53 
54 private:
56 
59  scalar eta[4];
60  };
61 
62  void add_grad_dot_products(vector3 grad_psi[10], scalar det_J, scalar weight);
63 
64  scalar grad_dot(vector3 *grad_psi_i, vector3 *grad_psi_j);
65 
66  void zero();
67 
68  void scale(scalar factor);
69 };
70 
71 
72 #endif
#define NUM_ELEMENTS_LOWER_TRIANGULAR_10X10
Definition: PoissonMatrixQuadratic.h:27
void build(mesh_node *n[10], scalar epsilon)
Definition: PoissonMatrixQuadratic.cpp:52
PoissonMatrixQuadratic()
Definition: PoissonMatrixQuadratic.cpp:26
void add_grad_dot_products(vector3 grad_psi[10], scalar det_J, scalar weight)
Definition: PoissonMatrixQuadratic.cpp:148
void zero()
Definition: PoissonMatrixQuadratic.cpp:162
scalar K_alpha[NUM_ELEMENTS_LOWER_TRIANGULAR_10X10]
Definition: PoissonMatrixQuadratic.h:55
scalar * get_K_alpha_mem_loc(int i, int j)
Definition: PoissonMatrixQuadratic.cpp:31
scalar eta[4]
Definition: PoissonMatrixQuadratic.h:59
scalar grad_dot(vector3 *grad_psi_i, vector3 *grad_psi_j)
Definition: PoissonMatrixQuadratic.cpp:158
Definition: mesh_node.h:39
static const int i
index of ith thing
Definition: rod_math_v9.h:63
scalar W
Definition: PoissonMatrixQuadratic.h:58
Definition: PoissonMatrixQuadratic.h:44
Definition: mat_vec_types.h:90
scalar get_K_alpha_value(int i, int j)
Definition: PoissonMatrixQuadratic.cpp:127
double scalar
Definition: mat_vec_types.h:36
void scale(scalar factor)
Definition: PoissonMatrixQuadratic.cpp:168
Definition: PoissonMatrixQuadratic.h:57