ASPECT
include
aspect
mesh_deformation
free_surface.h
Go to the documentation of this file.
1
// ------------------------------------------------------
2
//
3
// SPDX-License-Identifier: GPL-2.0-or-later
4
//
5
// SPDX-FileCopyrightText: Copyright (C) 2011-2025 by the ASPECT authors.
6
//
7
// This file is part of ASPECT.
8
//
9
// Detailed license information governing the source code and
10
// contributions can be found in the folder LICENSES and in
11
// LICENSE and CONTRIBUTING.md at the top level directory.
12
//
13
// ------------------------------------------------------
14
15
16
#ifndef _aspect_mesh_deformation_free_surface_h
17
#define _aspect_mesh_deformation_free_surface_h
18
19
#include <
aspect/mesh_deformation/interface.h
>
20
21
#include <
aspect/simulator_access.h
>
22
#include <
aspect/simulator/assemblers/interface.h
>
23
24
25
namespace
aspect
26
{
27
namespace
MeshDeformation
28
{
37
template
<
int
dim>
38
class
FreeSurface
:
public
Interface
<dim>,
public
SimulatorAccess
<dim>
39
{
40
public
:
45
void
initialize
()
override
;
46
51
void
set_assemblers
(
const
SimulatorAccess<dim>
&simulator_access,
52
aspect::Assemblers::Manager<dim>
&assemblers)
const
;
53
54
61
void
62
compute_velocity_constraints_on_boundary
(
const
DoFHandler<dim>
&mesh_deformation_dof_handler,
63
AffineConstraints<double>
&mesh_velocity_constraints,
64
const
std::set<types::boundary_id> &boundary_ids)
const override
;
65
69
bool
needs_surface_stabilization
()
const override
;
70
74
static
75
void
declare_parameters
(
ParameterHandler
&prm);
76
80
void
parse_parameters
(
ParameterHandler
&prm)
override
;
81
82
private
:
87
void
project_velocity_onto_boundary
(
const
DoFHandler<dim>
&free_surface_dof_handler,
88
const
IndexSet
&mesh_locally_owned,
89
const
IndexSet
&mesh_locally_relevant,
90
LinearAlgebra::Vector
&output)
const
;
91
95
struct
SurfaceAdvection
96
{
97
enum
Direction
{
normal
,
vertical
};
98
};
99
104
typename
SurfaceAdvection::Direction
advection_direction
;
105
};
106
}
107
}
108
109
110
#endif
aspect::MeshDeformation::FreeSurface::set_assemblers
void set_assemblers(const SimulatorAccess< dim > &simulator_access, aspect::Assemblers::Manager< dim > &assemblers) const
AffineConstraints< double >
interface.h
TrilinosWrappers::MPI::Vector
aspect::Assemblers::Manager
Definition:
simulator.h:140
aspect::MeshDeformation::FreeSurface::declare_parameters
static void declare_parameters(ParameterHandler &prm)
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
Definition:
free_surface.h:38
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
ParameterHandler
aspect::MeshDeformation::FreeSurface::SurfaceAdvection::Direction
Direction
Definition:
free_surface.h:97
aspect::MeshDeformation::FreeSurface::needs_surface_stabilization
bool needs_surface_stabilization() const override
simulator_access.h
aspect::SimulatorAccess
Definition:
plugins.h:41
aspect::MeshDeformation::Interface
Definition:
interface.h:83
aspect
Definition:
advection_field.h:24
IndexSet
interface.h
aspect::MeshDeformation::FreeSurface::initialize
void initialize() override
aspect::MeshDeformation::FreeSurface::parse_parameters
void parse_parameters(ParameterHandler &prm) override
DoFHandler< dim >
aspect::MeshDeformation::FreeSurface::SurfaceAdvection::vertical
Definition:
free_surface.h:97
aspect::MeshDeformation::FreeSurface::advection_direction
SurfaceAdvection::Direction advection_direction
Definition:
free_surface.h:104
aspect::MeshDeformation::FreeSurface::SurfaceAdvection::normal
Definition:
free_surface.h:97
aspect::MeshDeformation::FreeSurface::SurfaceAdvection
Definition:
free_surface.h:95
ASPECT manual
| Generated by
1.8.12