ASPECT
include
aspect
mesh_deformation
free_surface.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2011 - 2024 by the authors of the ASPECT code.
3
4
This file is part of ASPECT.
5
6
ASPECT is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
11
ASPECT is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with ASPECT; see the file LICENSE. If not see
18
<http://www.gnu.org/licenses/>.
19
*/
20
21
22
#ifndef _aspect_mesh_deformation_free_surface_h
23
#define _aspect_mesh_deformation_free_surface_h
24
25
#include <
aspect/mesh_deformation/interface.h
>
26
27
#include <
aspect/simulator_access.h
>
28
#include <
aspect/simulator/assemblers/interface.h
>
29
30
31
namespace
aspect
32
{
33
namespace
MeshDeformation
34
{
43
template
<
int
dim>
44
class
FreeSurface
:
public
Interface
<dim>,
public
SimulatorAccess
<dim>
45
{
46
public
:
51
void
initialize
()
override
;
52
57
void
set_assemblers
(
const
SimulatorAccess<dim>
&simulator_access,
58
aspect::Assemblers::Manager<dim>
&assemblers)
const
;
59
60
67
void
68
compute_velocity_constraints_on_boundary
(
const
DoFHandler<dim>
&mesh_deformation_dof_handler,
69
AffineConstraints<double>
&mesh_velocity_constraints,
70
const
std::set<types::boundary_id> &boundary_ids)
const override
;
71
75
bool
needs_surface_stabilization
()
const override
;
76
80
static
81
void
declare_parameters
(
ParameterHandler
&prm);
82
86
void
parse_parameters
(
ParameterHandler
&prm)
override
;
87
88
private
:
93
void
project_velocity_onto_boundary
(
const
DoFHandler<dim>
&free_surface_dof_handler,
94
const
IndexSet
&mesh_locally_owned,
95
const
IndexSet
&mesh_locally_relevant,
96
LinearAlgebra::Vector
&output)
const
;
97
101
struct
SurfaceAdvection
102
{
103
enum
Direction
{
normal
,
vertical
};
104
};
105
110
typename
SurfaceAdvection::Direction
advection_direction
;
111
};
112
}
113
}
114
115
116
#endif
AffineConstraints< double >
DoFHandler< dim >
IndexSet
ParameterHandler
TrilinosWrappers::MPI::Vector
aspect::Assemblers::Manager
Definition:
interface.h:688
aspect::MeshDeformation::FreeSurface
Definition:
free_surface.h:45
aspect::MeshDeformation::FreeSurface::set_assemblers
void set_assemblers(const SimulatorAccess< dim > &simulator_access, aspect::Assemblers::Manager< dim > &assemblers) const
aspect::MeshDeformation::FreeSurface::project_velocity_onto_boundary
void project_velocity_onto_boundary(const DoFHandler< dim > &free_surface_dof_handler, const IndexSet &mesh_locally_owned, const IndexSet &mesh_locally_relevant, LinearAlgebra::Vector &output) const
aspect::MeshDeformation::FreeSurface::compute_velocity_constraints_on_boundary
void compute_velocity_constraints_on_boundary(const DoFHandler< dim > &mesh_deformation_dof_handler, AffineConstraints< double > &mesh_velocity_constraints, const std::set< types::boundary_id > &boundary_ids) const override
aspect::MeshDeformation::FreeSurface::declare_parameters
static void declare_parameters(ParameterHandler &prm)
aspect::MeshDeformation::FreeSurface::advection_direction
SurfaceAdvection::Direction advection_direction
Definition:
free_surface.h:110
aspect::MeshDeformation::FreeSurface::needs_surface_stabilization
bool needs_surface_stabilization() const override
aspect::MeshDeformation::FreeSurface::initialize
void initialize() override
aspect::MeshDeformation::FreeSurface::parse_parameters
void parse_parameters(ParameterHandler &prm) override
aspect::MeshDeformation::Interface
Definition:
interface.h:90
aspect::SimulatorAccess
Definition:
simulator_access.h:211
interface.h
aspect
Definition:
advection_field.h:31
interface.h
simulator_access.h
aspect::MeshDeformation::FreeSurface::SurfaceAdvection
Definition:
free_surface.h:102
aspect::MeshDeformation::FreeSurface::SurfaceAdvection::Direction
Direction
Definition:
free_surface.h:103
aspect::MeshDeformation::FreeSurface::SurfaceAdvection::vertical
@ vertical
Definition:
free_surface.h:103
aspect::MeshDeformation::FreeSurface::SurfaceAdvection::normal
@ normal
Definition:
free_surface.h:103
ASPECT manual
| Generated by
1.9.1