MeshKit  1.0
TriharmonicRBF.hpp
Go to the documentation of this file.
00001 #ifndef __TRIHARMONICRBF_HPP
00002 #define __TRIHARMONICRBF_HPP
00003 
00004 #include <stdlib.h>
00005 #include <stdio.h>
00006 #include <assert.h>
00007 #include <string>
00008 #include <iostream>
00009 #include <fstream>
00010 #include <string.h>
00011 #include <limits.h>
00012 
00013 #include "meshkit/MKCore.hpp"
00014 #include "meshkit/iMesh.hpp"
00015 #include "meshkit/MeshOp.hpp"
00016 #include "meshkit/ModelEnt.hpp"
00017 #include "Global.hpp"
00018 #include <set>
00019 #include <vector>
00020 #include <map>
00021 #include <armadillo>
00022 
00023 //using namespace Eigen;
00024 using namespace arma;
00025 
00026 using namespace std;
00027 //using namespace Mesquite;
00028 
00029 namespace MeshKit {
00030 
00031 class TriharmonicRBF
00032 {       
00033 public:
00034         //public function
00035         TriharmonicRBF(vector<vector<double> > undeformed_cage_vertices, vector<vector<double> > deformed_cage_vertices, vector<vector<int> > cage_faces);
00036         void SetupInteriorNodes(vector<vector<double> > undeformed_in_nodes);
00037         void GetInteriorNodes(vector<vector<double> > &final_locations);
00038     ~TriharmonicRBF();
00039     void Execute();
00040 
00041 private:
00042         double TriHarmonicFun(vector<double> xi, vector<double> xj);
00043     double InterpolatedFun(vector<double> x, vec coeffs);
00044 private:
00045     vector<vector<double> > un_cage_vertices;
00046     vector<vector<double> > cage_vertices;
00047     vector<vector<int> > cage_faces;
00048     vector<vector<double> > un_InnerNodes;
00049     vector<vector<double> > InnerNodes;
00050     unsigned int num_vertices;
00051     unsigned int num_interior;
00052         
00053 };
00054 
00055 }
00056 #endif
00057 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines