00001 // 00002 // C++ Interface: %{MODULE} 00003 // 00004 // Description: 00005 // 00006 // 00007 // Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR} 00008 // 00009 // Copyright: See COPYING file that comes with this distribution 00010 // 00011 // 00012 #ifndef POSTPROCESSLINEARFIELDINTERPOLATION_H 00013 #define POSTPROCESSLINEARFIELDINTERPOLATION_H 00014 00015 #include "colarray/vector.h" 00016 #include "tetmesh.h" 00017 #include "nedelecmesh.h" 00018 00019 namespace postprocess { 00020 00027 class LinearFieldInterpolation { 00028 public: 00034 LinearFieldInterpolation(const NedelecMesh& nedelec_mesh, const colarray::Vector<double>& q); 00038 ~LinearFieldInterpolation(); 00044 mesh::Vector3 eval(const mesh::Vector3& x); 00050 mesh::Vector3 eval_curl(const mesh::Vector3& x); 00051 00052 private: 00056 LinearFieldInterpolation(const LinearFieldInterpolation&); 00057 00058 protected: 00062 std::vector<mesh::Vector3> node_values_; 00066 const NedelecMesh& nedelec_mesh_; 00067 }; 00068 00069 }; 00070 00071 #endif