line_mesh.h
Go to the documentation of this file.
1 //LIC// ====================================================================
2 //LIC// This file forms part of oomph-lib, the object-oriented,
3 //LIC// multi-physics finite-element library, available
4 //LIC// at http://www.oomph-lib.org.
5 //LIC//
6 //LIC// Version 1.0; svn revision $LastChangedRevision$
7 //LIC//
8 //LIC// $LastChangedDate$
9 //LIC//
10 //LIC// Copyright (C) 2006-2016 Matthias Heil and Andrew Hazel
11 //LIC//
12 //LIC// This library is free software; you can redistribute it and/or
13 //LIC// modify it under the terms of the GNU Lesser General Public
14 //LIC// License as published by the Free Software Foundation; either
15 //LIC// version 2.1 of the License, or (at your option) any later version.
16 //LIC//
17 //LIC// This library is distributed in the hope that it will be useful,
18 //LIC// but WITHOUT ANY WARRANTY; without even the implied warranty of
19 //LIC// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 //LIC// Lesser General Public License for more details.
21 //LIC//
22 //LIC// You should have received a copy of the GNU Lesser General Public
23 //LIC// License along with this library; if not, write to the Free Software
24 //LIC// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
25 //LIC// 02110-1301 USA.
26 //LIC//
27 //LIC// The authors may be contacted at oomph-lib@maths.man.ac.uk.
28 //LIC//
29 //LIC//====================================================================
30 // Common base class for all LineMeshes
31 
32 #ifndef OOMPH_LINEMESH_HEADER
33 #define OOMPH_LINEMESH_HEADER
34 
35 // Config header generated by autoconfig
36 #ifdef HAVE_CONFIG_H
37  #include <oomph-lib-config.h>
38 #endif
39 
40 
41 #ifdef OOMPH_HAS_MPI
42 //mpi headers
43 #include "mpi.h"
44 #endif
45 
46 // oomph-lib includes
47 #include "Vector.h"
48 #include "nodes.h"
49 #include "matrices.h"
50 #include "mesh.h"
51 
52 namespace oomph
53 {
54 
55  //======================================================================
56  /// Base class for line meshes (meshes made of 1D line elements)
57  //======================================================================
58  class LineMeshBase : public virtual Mesh
59  {
60 
61  public:
62 
63  /// Constructor (empty)
65 
66  /// Broken copy constructor
67  LineMeshBase(const LineMeshBase& node)
68  {
69  BrokenCopy::broken_copy("LineMeshBase");
70  }
71 
72  /// Broken assignment operator
73  void operator=(const LineMeshBase&)
74  {
75  BrokenCopy::broken_assign("LineMeshBase");
76  }
77 
78  /// Destructor (empty)
79  virtual ~LineMeshBase() {}
80 
81  /// Set up lookup schemes which establish which elements are located
82  /// next to mesh's boundaries (wrapper to suppress doc)
84  {
85  std::ofstream outfile;
87  }
88 
89  /// \short Set up lookup schemes which establish which elements are
90  /// located next to mesh's boundaries. Doc in outfile (if it's open).
91  void setup_boundary_element_info(std::ostream &outfile);
92 
93  };
94 
95 } // End of namespace
96 
97 #endif
98 
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
void setup_boundary_element_info()
Definition: line_mesh.h:83
void operator=(const LineMeshBase &)
Broken assignment operator.
Definition: line_mesh.h:73
Base class for line meshes (meshes made of 1D line elements)
Definition: line_mesh.h:58
LineMeshBase()
Constructor (empty)
Definition: line_mesh.h:64
void broken_assign(const std::string &class_name)
Issue error message and terminate execution.
virtual ~LineMeshBase()
Destructor (empty)
Definition: line_mesh.h:79
LineMeshBase(const LineMeshBase &node)
Broken copy constructor.
Definition: line_mesh.h:67
A general mesh class.
Definition: mesh.h:74