one_d_lagrangian_mesh.template.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 #ifndef OOMPH_ONE_D_LAGRANGIAN_MESH_HEADER
27 #define OOMPH_ONE_D_LAGRANGIAN_MESH_HEADER
28 
29 // OOMPH-LIB headers
30 #include "../generic/mesh.h"
31 #include "../generic/geom_objects.h"
32 #include "../generic/fsi.h"
33 
34 // Include the header for the one dimensional mesh
35 #include "one_d_mesh.template.h"
36 
37 
38 namespace oomph
39 {
40  //=======================================================================
41  /// 1D mesh parametrised in terms of a 1D Lagrangian coordinate.
42  /// The Eulerian positions of the nodes are determined by the GeomObject.
43  //=======================================================================
44  template<class ELEMENT>
45  class OneDLagrangianMesh : public OneDMesh<ELEMENT>, public SolidMesh
46  {
47  private:
48  /// Undeformed Eulerian shape
50 
51  /// Set the default gradients of the elements
53 
54  public:
55  /// Constructor: Pass number of elements, length,
56  /// pointer to GeomObject that defines the undeformed Eulerian position,
57  /// and the timestepper -- defaults to (Steady) default timestepper defined
58  /// in the Mesh base class
60  const unsigned& n_element,
61  const double& length,
62  GeomObject* undef_eulerian_posn_pt,
63  TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper);
64 
65  /// Constructor: Pass number of elements, xmin, xmax
66  /// pointer to GeomObject that defines the undeformed Eulerian position,
67  /// and the timestepper -- defaults to (Steady) default timestepper defined
68  /// in the Mesh base class
70  const unsigned& n_element,
71  const double& xmin,
72  const double& xmax,
73  GeomObject* undef_eulerian_posn_pt,
74  TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper);
75 
76 
77  /// Assign the undeformed Eulerian positions to the nodes
79  };
80 
81 } // namespace oomph
82 
83 #endif
1D mesh parametrised in terms of a 1D Lagrangian coordinate. The Eulerian positions of the nodes are ...
void assign_undeformed_positions()
Assign the undeformed Eulerian positions to the nodes.
OneDLagrangianMesh(const unsigned &n_element, const double &length, GeomObject *undef_eulerian_posn_pt, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass number of elements, length, pointer to GeomObject that defines the undeformed Euler...
void assign_default_element_gradients()
Set the default gradients of the elements.
GeomObject * Undef_eulerian_posn_pt
Undeformed Eulerian shape.
1D mesh consisting of N one-dimensional elements from the QElement family.
////////////////////////////////////////////////////////////////////// //////////////////////////////...