src/fem/femaxmesh.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           femaxmesh.h  -  description
00003                              -------------------
00004     begin                : Fri Dec 19 2003
00005     copyright            : (C) 2003 by Roman Geus
00006     email                : roman.geus@psi.ch
00007 ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef FEMAXMESH_H
00019 #define FEMAXMESH_H
00020 
00021 #include "Epetra_CrsMatrix.h"
00022 #include "nedelecmesh.h"
00023 #include "lagrangemesh.h"
00024 #include "tetmesh/tetmesh.h"
00025 #include "tetmesh/paralleltetmesh.h"
00026 
00031 class FemaxMesh {
00032 public:
00035   FemaxMesh(mesh::TetMesh& mesh, int order, int sym_plane_config);
00036     ~FemaxMesh();
00037 
00038 private:
00041     FemaxMesh(const FemaxMesh&);
00042 
00045     FemaxMesh& operator=(const FemaxMesh&);
00046     
00047 public:
00049     void constructY(Epetra_FECrsMatrix& Y,Epetra_Map& domain_map, Epetra_Map& range_map);
00051     void constructY_transp(Epetra_FECrsMatrix& Y_transp, Epetra_Map& domain_map, Epetra_Map& range_map);
00053     LagrangeMesh& get_lagrange_mesh() const
00054     { return *mesh_lagrange_; }
00056     NedelecMesh& get_nedelec_mesh() const
00057     { return *mesh_nedelec_; }
00059     mesh::TetMesh& get_tet_mesh() const
00060     { return mesh_; }
00061 
00062 private:
00064     mesh::TetMesh& mesh_;
00065     mesh::ParallelTetMesh* _pmesh;
00066 
00068     int order_;
00070     NedelecMesh* mesh_nedelec_;
00072     LagrangeMesh* mesh_lagrange_;
00073 };
00074 
00075 #endif

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