ASPECT
include
aspect
simulator
assemblers
advection.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) 2017-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
#ifndef _aspect_simulator_assemblers_advection_h
16
#define _aspect_simulator_assemblers_advection_h
17
18
19
#include <
aspect/simulator/assemblers/interface.h
>
20
#include <
aspect/simulator_access.h
>
21
22
namespace
aspect
23
{
24
namespace
Assemblers
25
{
30
template
<
int
dim>
31
class
AdvectionSystem
:
public
Assemblers::Interface
<dim>,
public
Assemblers::AdvectionStabilizationInterface
<dim>,
32
public
SimulatorAccess
<dim>
33
{
34
public
:
35
void
36
execute
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base,
37
internal::Assembly::CopyData::CopyDataBase<dim>
&data_base)
const override
;
38
39
std::vector<double>
40
compute_residual
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base)
const override
;
41
};
42
43
template
<
int
dim>
44
class
DarcySystem
:
public
Assemblers::Interface
<dim>,
public
Assemblers::AdvectionStabilizationInterface
<dim>,
45
public
SimulatorAccess
<dim>
46
{
47
public
:
48
void
49
execute
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base,
50
internal::Assembly::CopyData::CopyDataBase<dim>
&data_base)
const override
;
51
52
std::vector<double>
53
compute_residual
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base)
const override
;
54
55
void
56
create_additional_material_model_outputs
(
MaterialModel::MaterialModelOutputs<dim>
&outputs)
const override
;
57
};
58
63
template
<
int
dim>
64
class
DiffusionSystem
:
public
Assemblers::Interface
<dim>,
public
Assemblers::AdvectionStabilizationInterface
<dim>,
65
public
SimulatorAccess
<dim>
66
{
67
public
:
68
void
69
execute
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base,
70
internal::Assembly::CopyData::CopyDataBase<dim>
&data_base)
const override
;
71
72
std::vector<double>
73
compute_residual
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base)
const override
;
74
75
virtual
76
std::vector<double>
77
advection_prefactors
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base)
const override
;
78
79
virtual
80
std::vector<double>
81
diffusion_prefactors
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base)
const override
;
82
};
83
89
template
<
int
dim>
90
class
AdvectionSystemBoundaryHeatFlux
:
public
Assemblers::Interface
<dim>,
91
public
SimulatorAccess
<dim>
92
{
93
public
:
94
void
95
execute
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base,
96
internal::Assembly::CopyData::CopyDataBase<dim>
&data_base)
const override
;
97
};
98
104
template
<
int
dim>
105
class
AdvectionSystemRobinBoundary
:
public
Assemblers::Interface
<dim>,
106
public
SimulatorAccess
<dim>
107
{
108
public
:
109
void
110
execute
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base,
111
internal::Assembly::CopyData::CopyDataBase<dim>
&data_base)
const override
;
112
};
113
118
template
<
int
dim>
119
class
AdvectionSystemBoundaryFace
:
public
Assemblers::Interface
<dim>,
120
public
SimulatorAccess
<dim>
121
{
122
public
:
123
void
124
execute
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base,
125
internal::Assembly::CopyData::CopyDataBase<dim>
&data_base)
const override
;
126
};
127
132
template
<
int
dim>
133
class
AdvectionSystemInteriorFace
:
public
Assemblers::Interface
<dim>,
134
public
SimulatorAccess
<dim>
135
{
136
public
:
137
void
138
execute
(
internal::Assembly::Scratch::ScratchBase<dim>
&scratch_base,
139
internal::Assembly::CopyData::CopyDataBase<dim>
&data_base)
const override
;
140
};
141
}
142
}
143
144
145
#endif
aspect::Assemblers::AdvectionSystemInteriorFace
Definition:
advection.h:133
aspect::Assemblers::DarcySystem
Definition:
advection.h:44
aspect::Assemblers::AdvectionSystemBoundaryFace
Definition:
advection.h:119
aspect::Assemblers::AdvectionSystem::compute_residual
std::vector< double > compute_residual(internal::Assembly::Scratch::ScratchBase< dim > &scratch_base) const override
aspect::Assemblers::DiffusionSystem
Definition:
advection.h:64
aspect::Assemblers::AdvectionSystemRobinBoundary
Definition:
advection.h:105
aspect::Assemblers::AdvectionSystemBoundaryHeatFlux
Definition:
advection.h:90
aspect::Assemblers::AdvectionStabilizationInterface::diffusion_prefactors
virtual std::vector< double > diffusion_prefactors(internal::Assembly::Scratch::ScratchBase< dim > &scratch_base) const
aspect::Assemblers::Interface::create_additional_material_model_outputs
virtual void create_additional_material_model_outputs(MaterialModel::MaterialModelOutputs< dim > &) const
simulator_access.h
aspect::SimulatorAccess
Definition:
plugins.h:41
aspect
Definition:
advection_field.h:24
aspect::Assemblers::Interface
Definition:
simulator.h:139
interface.h
aspect::internal::Assembly::Scratch::ScratchBase
Definition:
interface.h:51
aspect::MaterialModel::MaterialModelOutputs
Definition:
interface.h:524
aspect::Assemblers::AdvectionSystem
Definition:
advection.h:31
aspect::internal::Assembly::CopyData::CopyDataBase
Definition:
interface.h:345
aspect::Assemblers::AdvectionStabilizationInterface
Definition:
interface.h:618
aspect::Assemblers::AdvectionStabilizationInterface::advection_prefactors
virtual std::vector< double > advection_prefactors(internal::Assembly::Scratch::ScratchBase< dim > &scratch_base) const
aspect::Assemblers::AdvectionSystem::execute
void execute(internal::Assembly::Scratch::ScratchBase< dim > &scratch_base, internal::Assembly::CopyData::CopyDataBase< dim > &data_base) const override
ASPECT manual
| Generated by
1.8.12