rsvs3D  0.0.0
Codes for the c++ implementation of the 3D RSVS
RSVScalctools.hpp
Go to the documentation of this file.
1 
7 //===============================================
8 // Include Guards
9 #ifndef RSVSCALCTOOLS_HPP
10 #define RSVSCALCTOOLS_HPP
11 
12 //===============================================
13 // Levels of debuging Guards
14 #ifdef DEBUGLVL2 // All Debugging calls
15 #define DEBUGLVL1
16 #define TEST_ALL
17 #endif
18 
19 #ifdef DEBUGLVL1 // Debugging of new features.
20 
21 #endif
22 
23 // forward declaration
24 
25 class triangulation;
26 class triangle;
27 class RSVScalc;
28 // Includes
29 
30 #include <Eigen>
31 #include <vector>
32 
33 #include "arraystructures.hpp"
34 #include "mesh.hpp"
35 #include "vectorarray.hpp"
36 // Declarations
37 
48 
62  const HashedVector<int, int> &objDvMap,
63  bool useSurfCentreDeriv = true);
64 
84 void TrianglePositionDerivatives(const triangle &triIn, const triangulation &triRSVS,
85  const HashedVector<int, int> &dvListMap, Eigen::MatrixXd &dPos, Eigen::MatrixXd &HPos,
86  bool useSurfCentreDeriv = true, bool useSurfCentreHessian = false);
87 
88 void AssignConstraintDerivativesFullMath(RSVScalc &calc, const triangle &triIn, const HashedVector<int, int> &dvListMap,
89  const Eigen::MatrixXd &dConstrPart, const Eigen::MatrixXd &HConstrPart,
90  int constrPos, int cellTarg);
91 void AssignConstraintDerivativesSparseMath(RSVScalc &calc, const triangle &triIn,
92  const HashedVector<int, int> &dvListMap, const Eigen::MatrixXd &dConstrPart,
93  const Eigen::MatrixXd &HConstrPart, int constrPos, int cellTarg);
94 
95 #endif // RSVSCALCTOOLS_HPP
HashedVector< int, int > TriangleActiveDesignVariables(const triangle &triIn, const triangulation &triRSVS, const HashedVector< int, int > &objDvMap, bool useSurfCentreDeriv=true)
Get the active design variables defined by a triangle object.
void TrianglePositionDerivatives(const triangle &triIn, const triangulation &triRSVS, const HashedVector< int, int > &dvListMap, Eigen::MatrixXd &dPos, Eigen::MatrixXd &HPos, bool useSurfCentreDeriv=true, bool useSurfCentreHessian=false)
Calculate the positional derivatives of a triangle object.
grid::coordlist TrianglePointerCoordinates(const triangle &triIn, const triangulation &triRSVS)
Get all the coordinates needed to define a triangle.
Provide std::vector container with hashed index mapping.
Class to handle the RSVS calculation.
Definition: RSVScalc.hpp:130
bool useSurfCentreDeriv
Enable or disable surfcentroid derivatives.
Definition: RSVScalc.hpp:145
bool useSurfCentreHessian
Enable or disable surfcentroid derivatives.
Definition: RSVScalc.hpp:147
Provides all the mesh tools used for the generation of 3D grids and geometries.
std::vector< const std::vector< double > * > coordlist
Defines a list of coordinates.
Definition: mesh.hpp:87
Provides a 2D std::vector based container.