src/femaxxdriver.h

Go to the documentation of this file.
00001 //
00002 // C++ Interface: femaxxdriver
00003 //
00004 // Description:
00005 //
00006 //
00007 // Author: Roman Geus <geus@maxwell>, (C) 2004
00008 //
00009 // Copyright: See COPYING file that comes with this distribution
00010 //
00011 //
00012 #ifndef FEMAXXDRIVER_H
00013 #define FEMAXXDRIVER_H
00014 
00015 #include <Teuchos_ParameterList.hpp>
00016 #include "HDF5ParallelReader.h"
00017 
00018 // forward declarations
00019 namespace mesh {
00020     class TetMesh;
00021 }
00022 class FemaxMesh;
00023 class Epetra_Comm;
00024 class Epetra_SerialDenseVector;
00025 class Epetra_MultiVector;
00026 
00035 class FemaxxDriver {
00036 public:
00037     FemaxxDriver(const Epetra_Comm& comm, Teuchos::ParameterList& params);
00038 
00039     ~FemaxxDriver();
00040 
00041 private:
00044     FemaxxDriver(const FemaxxDriver&);
00045 
00048     FemaxxDriver& operator=(const FemaxxDriver&);
00049 
00050 public:
00053     void run();
00054 
00056     void load_mesh();
00057 
00059     void calculate_eigenfields();
00060 
00062     void postprocess();
00063 
00067     const Teuchos::ParameterList& get_params() {
00068         return params_;
00069     }
00070 
00074     FemaxMesh& get_femax_mesh() {
00075         return *femax_mesh_;
00076     }
00077 
00081     mesh::TetMesh& get_tet_mesh() {
00082         return *tmesh_;
00083     }
00084 
00089     static void set_defaults(Teuchos::ParameterList& params);
00090 
00098     const Epetra_MultiVector get_eigenvectors();
00099 
00107     Epetra_SerialDenseVector get_eigenvalues();
00108 
00110     const Epetra_Comm& get_comm() const {
00111         return comm_;
00112     }
00113 
00114 protected:
00117     const Epetra_Comm& comm_;
00120     Teuchos::ParameterList params_;
00123     Epetra_MultiVector* Q_;
00126     double* lambda_;
00129     int nof_converged_;
00132     mesh::TetMesh* tmesh_;
00135     FemaxMesh* femax_mesh_;
00136 };
00137 
00138 #endif

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