OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
Solvers
AMR_MG
AmrDirichletBoundary.h
Go to the documentation of this file.
1
#ifndef AMR_DIRICHLET_BOUNDARY_H
2
#define AMR_DIRICHLET_BOUNDARY_H
3
4
#include "
AmrBoundary.h
"
5
10
template
<
class
Level>
11
class
AmrDirichletBoundary
:
public
AmrBoundary
<Level> {
12
13
public
:
14
typedef
typename
Level::umap_t
umap_t
;
15
typedef
typename
Level::lo_t
lo_t
;
16
typedef
typename
Level::go_t
go_t
;
17
typedef
typename
Level::scalar_t
scalar_t
;
18
typedef
amr::AmrIntVect_t
AmrIntVect_t
;
19
20
public
:
21
22
AmrDirichletBoundary
() :
AmrBoundary
<Level>(1) { }
23
24
void
apply
(
const
AmrIntVect_t
& iv,
25
const
lo_t
& dir,
26
umap_t
& map,
27
const
scalar_t
& value,
28
Level* mglevel,
29
const
go_t
*
nr
);
30
};
31
32
33
template
<
class
Level>
34
void
AmrDirichletBoundary<Level>::apply
(
const
AmrIntVect_t
& iv,
35
const
lo_t
& dir,
36
umap_t
& map,
37
const
scalar_t
& value,
38
Level* mglevel,
39
const
go_t
*
nr
)
40
{
41
// find interior neighbour cell
42
AmrIntVect_t
niv = iv;
43
niv[dir] = (iv[dir] == -1) ? iv[dir] + 1 : iv[dir] - 1;
44
map[mglevel->serialize(niv)] -= value;
45
}
46
47
48
49
50
#endif
AmrBoundary::AmrIntVect_t
amr::AmrIntVect_t AmrIntVect_t
Definition:
AmrBoundary.h:17
AmrBoundary::lo_t
Level::lo_t lo_t
Definition:
AmrBoundary.h:13
AmrBoundary::umap_t
Level::umap_t umap_t
Definition:
AmrBoundary.h:12
AmrDirichletBoundary
Definition:
AmrDirichletBoundary.h:11
AmrDirichletBoundary::scalar_t
Level::scalar_t scalar_t
Definition:
AmrDirichletBoundary.h:17
nr
const int nr
Definition:
ClassicRandom.h:24
amr::AmrIntVect_t
amrex::IntVect AmrIntVect_t
Definition:
AmrDefs.h:28
AmrBoundary.h
AmrBoundary::go_t
Level::go_t go_t
Definition:
AmrBoundary.h:14
AmrDirichletBoundary::AmrIntVect_t
amr::AmrIntVect_t AmrIntVect_t
Definition:
AmrDirichletBoundary.h:18
AmrDirichletBoundary::go_t
Level::go_t go_t
Definition:
AmrDirichletBoundary.h:16
AmrDirichletBoundary::lo_t
Level::lo_t lo_t
Definition:
AmrDirichletBoundary.h:15
AmrBoundary
Definition:
AmrBoundary.h:9
AmrDirichletBoundary::umap_t
Level::umap_t umap_t
Definition:
AmrDirichletBoundary.h:14
AmrDirichletBoundary::AmrDirichletBoundary
AmrDirichletBoundary()
Definition:
AmrDirichletBoundary.h:22
AmrBoundary::scalar_t
Level::scalar_t scalar_t
Definition:
AmrBoundary.h:15
AmrDirichletBoundary::apply
void apply(const AmrIntVect_t &iv, const lo_t &dir, umap_t &map, const scalar_t &value, Level *mglevel, const go_t *nr)
Definition:
AmrDirichletBoundary.h:34
amr::scalar_t
double scalar_t
Definition:
AmrMultiGridDefs.h:17
Generated on Sat Jan 4 2020 14:48:05 for OPAL (Object Oriented Parallel Accelerator Library) by
1.8.5