one_d_lagrangian_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-2025 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.h"
36
37namespace oomph
38{
39 //=======================================================================
40 /// 1D mesh parametrised in terms of a 1D Lagrangian coordinate.
41 /// The Eulerian positions of the nodes are determined by the GeomObject.
42 //=======================================================================
43 template<class ELEMENT>
44 class OneDLagrangianMesh : public OneDMesh<ELEMENT>, public SolidMesh
45 {
46 private:
47 /// Undeformed Eulerian shape
49
50 /// Set the default gradients of the elements
52
53 /// Assign the undeformed Eulerian positions to the nodes
55
56 public:
57 /// Constructor: Pass number of elements, length,
58 /// pointer to GeomObject that defines the undeformed Eulerian position,
59 /// and the timestepper -- defaults to (Steady) default timestepper defined
60 /// in the Mesh base class
62 const unsigned& n_element,
63 const double& length,
64 GeomObject* undef_eulerian_posn_pt,
65 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper);
66
67 /// Constructor: Pass number of elements, xmin, xmax
68 /// pointer to GeomObject that defines the undeformed Eulerian position,
69 /// and the timestepper -- defaults to (Steady) default timestepper defined
70 /// in the Mesh base class
72 const unsigned& n_element,
73 const double& xmin,
74 const double& xmax,
75 GeomObject* undef_eulerian_posn_pt,
76 TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper);
77 };
78
79} // namespace oomph
80
82#endif
Collapsible channel mesh with MacroElement-based node update. The collapsible segment is represented ...
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.
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.
Definition one_d_mesh.h:52