00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef BROADCASTMESHBUILDER_H
00019 #define BROADCASTMESHBUILDER_H
00020
00021 #include "Epetra_Comm.h"
00022 #include "meshbuilder.h"
00023
00029 class BroadcastMeshBuilder : public MeshBuilder {
00030 public:
00031 BroadcastMeshBuilder(const Epetra_Comm* comm, MeshBuilder* builder);
00032 ~BroadcastMeshBuilder();
00034 virtual void receiver();
00036 virtual void init_coord(int nof_node);
00038 virtual void set_coord(int i, double x, double y, double z);
00040 virtual void finalize_coord();
00042 virtual void init_tet(int nof_tet);
00044 virtual void set_tet(int t, int id0, int id1, int id2, int id3, int material);
00046 virtual void finalize_tet();
00048 virtual void init_bc(int nof_bc_face);
00050 virtual void set_bc(int id0, int id1, int id2, int bc_id);
00052 virtual void finalize_bc(int nof_sym);
00053 private:
00055 MeshBuilder* _builder;
00056 const Epetra_Comm* _comm;
00057 int _nof_node;
00058 int _nof_tet;
00059 int _nof_bc_face;
00060 int _bc_face_counter;
00061 int _nof_sym;
00062 double *_coord;
00063 int *_tet_node;
00064 int *_bc_face;
00065 int *_material;
00066 };
00067
00068 #endif