chombo-discharge
Loading...
Searching...
No Matches
CD_ElectrostaticDomainBc.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_ELECTROSTATICDOMAINBC_H
14#define CD_ELECTROSTATICDOMAINBC_H
15
16// Std include
17#include <functional>
18#include <map>
19
20// Chombo includes
21#include <RealVect.H>
22#include <LoHiSide.H>
23
24// Our includes
25#include <CD_NamespaceHeader.H>
26
34{
35public:
39 enum class BcType
40 {
41 Dirichlet,
42 Neumann
43 };
44
51
56
61
66
72
78
86
93
97 virtual ~ElectrostaticDomainBc();
98
105 void
106 setBc(const DomainSide a_domainSide, const Bc& a_bc);
107
114 Bc
115 getBc(const DomainSide a_domainSide) const;
116
117protected:
123};
124
125#include <CD_NamespaceFooter.H>
126
127#endif
Class which maps boundary condition types to a side and direction.
Definition CD_ElectrostaticDomainBc.H:34
virtual ~ElectrostaticDomainBc()
Destructor. This.
Definition CD_ElectrostaticDomainBc.cpp:41
ElectrostaticDomainBc(const ElectrostaticDomainBc &a_other)=default
Copy constructor.
BcType
Supported boundary condition types.
Definition CD_ElectrostaticDomainBc.H:40
std::map< DomainSide, Bc > m_bcFunctions
This holds the map to the boundary condition type and side. The first entry in the map is the directi...
Definition CD_ElectrostaticDomainBc.H:122
Bc getBc(const DomainSide a_domainSide) const
Returns the boundary condition for a domain side.
Definition CD_ElectrostaticDomainBc.cpp:57
ElectrostaticDomainBc & operator=(const ElectrostaticDomainBc &a_other)=default
Copy assignment.
std::pair< BcType, BcFunction > Bc
Alias for mapping a bctype and function.
Definition CD_ElectrostaticDomainBc.H:60
std::pair< int, Side::LoHiSide > DomainSide
Alias for mapping a direction and side.
Definition CD_ElectrostaticDomainBc.H:55
void setBc(const DomainSide a_domainSide, const Bc &a_bc)
Set the boundary condition on a domain side. You must set both the type, and the associated function.
Definition CD_ElectrostaticDomainBc.cpp:49
ElectrostaticDomainBc()
Initializing constructor. This populates the BC functions with homogeneous Neumann boundary condition...
Definition CD_ElectrostaticDomainBc.cpp:20
ElectrostaticDomainBc & operator=(const ElectrostaticDomainBc &&a_other)=delete
Disallowed move assignment.
std::function< Real(const RealVect a_position, const Real a_time)> BcFunction
Function which maps f(R^3,t) : R. Used for setting the associated value and boundary condition type.
Definition CD_ElectrostaticDomainBc.H:50
ElectrostaticDomainBc(const ElectrostaticDomainBc &&a_other)=delete
Disallowed move constructor.
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26