Toggle navigation
Documentation
Big picture
The finite element method
The data structure
Not-so-quick guide
Optimisation
Order of action functions
Example codes and tutorials
List of example codes and tutorials
Meshing
Solvers
MPI parallel processing
Post-processing/visualisation
Other
Change log
Creating documentation
Coding conventions
Index
FAQ
Installation
Installation guide
Copyright
About
People
Contact/Get involved
Publications
Acknowledgements
Picture show
Go
src
meshes
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-2023 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
49
GeomObject*
Undef_eulerian_posn_pt
;
50
51
/// Set the default gradients of the elements
52
void
assign_default_element_gradients
();
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
59
OneDLagrangianMesh
(
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
69
OneDLagrangianMesh
(
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
78
void
assign_undeformed_positions
();
79
};
80
81
}
// namespace oomph
82
83
#endif
oomph::OneDLagrangianMesh
1D mesh parametrised in terms of a 1D Lagrangian coordinate. The Eulerian positions of the nodes are ...
Definition:
one_d_lagrangian_mesh.template.h:46
oomph::OneDLagrangianMesh::assign_undeformed_positions
void assign_undeformed_positions()
Assign the undeformed Eulerian positions to the nodes.
Definition:
one_d_lagrangian_mesh.template.cc:138
oomph::OneDLagrangianMesh::OneDLagrangianMesh
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...
Definition:
one_d_lagrangian_mesh.template.cc:47
oomph::OneDLagrangianMesh::assign_default_element_gradients
void assign_default_element_gradients()
Set the default gradients of the elements.
Definition:
one_d_lagrangian_mesh.template.cc:108
oomph::OneDLagrangianMesh::Undef_eulerian_posn_pt
GeomObject * Undef_eulerian_posn_pt
Undeformed Eulerian shape.
Definition:
one_d_lagrangian_mesh.template.h:49
oomph::OneDMesh
1D mesh consisting of N one-dimensional elements from the QElement family.
Definition:
one_d_mesh.template.h:52
oomph
////////////////////////////////////////////////////////////////////// //////////////////////////////...
Definition:
annular_domain.h:35
one_d_mesh.template.h