src/vtkexport.h

Go to the documentation of this file.
00001 //
00002 // C++ Interface: vtkexport
00003 //
00004 // Description:
00005 //
00006 //
00007 // Author: Roman Geus <roman.geus@psi.ch>, (C) 2004
00008 //
00009 // Copyright: See COPYING file that comes with this distribution
00010 //
00011 //
00012 #ifndef POSTPROCESSVTKEXPORT_H
00013 #define POSTPROCESSVTKEXPORT_H
00014 
00015 #include <math.h>
00016 #include <vector>
00017 #include "vtkexport.h"
00018 #include "tetmesh/point.h"
00019 #include "tetmesh/tetmesh.h"
00020 #include "tetmesh/tet.h"
00021 #include "tetmesh/vector3.h"
00022 #include "Epetra_Operator.h"
00023 #include "Epetra_MultiVector.h"
00024 #include "Epetra_SerialDenseVector.h"
00025 #include "Epetra_Vector.h"
00026 #include "nedelecmesh.h"
00027 
00028 
00029 namespace postprocess {
00030 
00035 class VtkExport {
00036 
00037 public:
00043     VtkExport(const NedelecMesh& nedelec_mesh,
00044               const Epetra_SerialDenseVector& lambda,
00045               const Epetra_MultiVector& Q);
00046 
00048     void export_mesh(string file);
00049 
00053     void export_eigenfields(std::string file);
00059     void export_eigenfields2(std::string file, int nof_cells);
00060 
00062     void export_a_to_b(std::string file, mesh::Vector3 a, mesh::Vector3 b, int nof_intervals);
00063 
00065     void integrate_a_to_b(int mode_id, mesh::Vector3 a, mesh::Vector3 b, double& int_e);
00066 
00068     int get_nof_vectors() const
00069         { return Q_.NumVectors(); }
00070 
00072     int get_nof_dofs() const
00073         { return Q_.GlobalLength(); }
00074 
00078     void get_eigenpair(int k, double* lambda, colarray::Vector<double>* q);
00079 
00080 private: /* private members */
00081     
00089     void getdimensions(int N, mesh::Vector3& box_len, int dim[3]);
00090 
00092     const NedelecMesh& nedelec_mesh_;
00094     const Epetra_SerialDenseVector lambda_;
00097     const Epetra_MultiVector Q_;
00099     const Epetra_Comm& comm_;
00101     int precision_;
00102 }; //end class vtkExport
00103 
00104 }; //namespace postprocess
00105 
00106 #endif

Generated on Fri Oct 26 13:35:13 2007 for FEMAXX (Finite Element Maxwell Eigensolver) by  doxygen 1.4.7