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