WarpX
Toggle main menu visibility
Loading...
Searching...
No Matches
Source
EmbeddedBoundary
EmbeddedBoundaryInit.H
Go to the documentation of this file.
1
/* Copyright 2021-2025 Lorenzo Giacomel, Luca Fedeli
2
*
3
* This file is part of WarpX.
4
*
5
* License: BSD-3-Clause-LBNL
6
*/
7
8
#ifndef WARPX_EMBEDDED_BOUNDARY_EMBEDDED_BOUNDARY_INIT_H_
9
#define WARPX_EMBEDDED_BOUNDARY_EMBEDDED_BOUNDARY_INIT_H_
10
11
#include "
Enabled.H
"
12
13
#ifdef AMREX_USE_EB
14
15
#include <
ablastr/fields/MultiFabRegister.H
>
16
17
#include <
AMReX_EBFabFactory.H
>
18
#include <
AMReX_iMultiFab.H
>
19
#include <
AMReX_Periodicity.H
>
20
#include <
AMReX_REAL.H
>
21
22
#include <array>
23
24
namespace
warpx::embedded_boundary
25
{
26
40
void
MarkReducedShapeCells (
41
std::unique_ptr<amrex::iMultiFab> & eb_reduce_particle_shape,
42
amrex::EBFArrayBoxFactory
const
& eb_fact,
43
int
particle_shape_order,
44
const
amrex::Periodicity& periodicity);
45
59
void
MarkUpdateCellsStairCase (
60
std::array< std::unique_ptr<amrex::iMultiFab>,3> & eb_update,
61
ablastr::fields::VectorField
const
& field,
62
amrex::EBFArrayBoxFactory
const
& eb_fact,
63
const
amrex::Periodicity& periodicity );
64
75
void
MarkUpdateECellsECT (
76
std::array< std::unique_ptr<amrex::iMultiFab>,3> & eb_update_E,
77
ablastr::fields::VectorField
const
& edge_lengths );
78
89
void
MarkUpdateBCellsECT (
90
std::array< std::unique_ptr<amrex::iMultiFab>,3> & eb_update_B,
91
ablastr::fields::VectorField
const
& face_areas,
92
ablastr::fields::VectorField
const
& edge_lengths );
93
102
void
MarkExtensionCells(
103
const
std::array<amrex::Real,3>& cell_size,
104
std::array< std::unique_ptr<amrex::iMultiFab>, 3 > & flag_info_face,
105
std::array< std::unique_ptr<amrex::iMultiFab>, 3 > & flag_ext_face,
106
const
ablastr::fields::VectorField
& b_field,
107
const
ablastr::fields::VectorField
& face_areas,
108
const
ablastr::fields::VectorField
& edge_lengths,
109
const
ablastr::fields::VectorField
& area_mod);
110
115
void
ComputeEdgeLengths (
116
ablastr::fields::VectorField
& edge_lengths,
117
const
amrex::EBFArrayBoxFactory& eb_fact);
122
void
ComputeFaceAreas (
123
ablastr::fields::VectorField
& face_areas,
124
const
amrex::EBFArrayBoxFactory& eb_fact);
125
129
void
ScaleEdges (
130
ablastr::fields::VectorField
& edge_lengths,
131
const
std::array<amrex::Real,3>& cell_size);
135
void
ScaleAreas (
136
ablastr::fields::VectorField
& face_areas,
137
const
std::array<amrex::Real,3>& cell_size);
138
}
139
140
#endif
141
142
#endif
//WARPX_EMBEDDED_BOUNDARY_EMBEDDED_BOUNDARY_H_
AMReX_EBFabFactory.H
AMReX_Periodicity.H
AMReX_REAL.H
AMReX_iMultiFab.H
Enabled.H
MultiFabRegister.H
ablastr::fields::VectorField
std::array< amrex::MultiFab *, 3 > VectorField
Definition
MultiFabRegister.H:201
Generated by
1.17.0