quad_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 QuadMeshes
31 #ifndef OOMPH_QUAMESH_HEADER
32 #define OOMPH_QUAMESH_HEADER
33 
34 // Config header generated by autoconfig
35 #ifdef HAVE_CONFIG_H
36  #include <oomph-lib-config.h>
37 #endif
38 
39 #ifdef OOMPH_HAS_MPI
40 //mpi headers
41 #include "mpi.h"
42 #endif
43 
44 //oomph-lib includes
45 #include "Vector.h"
46 #include "nodes.h"
47 #include "matrices.h"
48 #include "mesh.h"
49 
50 namespace oomph
51 {
52 
53 ///////////////////////////////////////////////////////////////////////
54 ///////////////////////////////////////////////////////////////////////
55 ///////////////////////////////////////////////////////////////////////
56 
57 
58 //================================================================
59 /// Base class for quad meshes (meshes made of 2D quad elements).
60 //================================================================
61 class QuadMeshBase : public virtual Mesh
62 {
63 
64 public:
65 
66  /// Constructor (empty)
68 
69  /// Broken copy constructor
70  QuadMeshBase(const QuadMeshBase& node)
71  {
72  BrokenCopy::broken_copy("QuadMeshBase");
73  }
74 
75  /// Broken assignment operator
76  void operator=(const QuadMeshBase&)
77  {
78  BrokenCopy::broken_assign("QuadMeshBase");
79  }
80 
81  /// Destructor (empty)
82  virtual ~QuadMeshBase(){}
83 
84  /// Setup lookup schemes which establish whic elements are located
85  /// next to mesh's boundaries (wrapper to suppress doc).
87  {
88  std::ofstream outfile;
90  }
91 
92  /// \short Setup lookup schemes which establish whic elements are located
93  /// next to mesh's boundaries. Doc in outfile (if it's open).
94  void setup_boundary_element_info(std::ostream &outfile);
95 
96 };
97 
98 }
99 
100 #endif
101 
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
void operator=(const QuadMeshBase &)
Broken assignment operator.
Definition: quad_mesh.h:76
void setup_boundary_element_info()
Definition: quad_mesh.h:86
Base class for quad meshes (meshes made of 2D quad elements).
Definition: quad_mesh.h:61
void broken_assign(const std::string &class_name)
Issue error message and terminate execution.
QuadMeshBase()
Constructor (empty)
Definition: quad_mesh.h:67
virtual ~QuadMeshBase()
Destructor (empty)
Definition: quad_mesh.h:82
A general mesh class.
Definition: mesh.h:74
QuadMeshBase(const QuadMeshBase &node)
Broken copy constructor.
Definition: quad_mesh.h:70