17template<
typename ValueType>
20 SurfaceBoundaryFactory<ValueType>,
21 Parameters<const UnstructuredMesh&, const Dictionary&, localIdx>>,
26 static std::string
name() {
return "SurfaceBoundaryFactory"; }
50 virtual std::unique_ptr<SurfaceBoundaryFactory>
clone()
const = 0;
59template<
typename ValueType>
67 mesh.boundaryMesh().offset()[static_cast<
size_t>(
patchID) + 1],
71 dict.get<std::string>(
"type"), mesh, dict,
patchID
77 boundaryCorrectionStrategy_(other.boundaryCorrectionStrategy_->clone())
82 boundaryCorrectionStrategy_->correctBoundaryCondition(domainVector);
87 boundaryCorrectionStrategy_->set(domainVector);
92 boundaryCorrectionStrategy_->update(domainVector);
99 std::unique_ptr<NeoN::finiteVolume::cellCentred::SurfaceBoundaryFactory<ValueType>>
100 boundaryCorrectionStrategy_;
A class representing a dictionary that stores key-value pairs.
Represents the domain fields for a computational domain.
A factory class for runtime selection of derived classes.
Represents an unstructured mesh in NeoN.
A base class for implementing derived boundary conditions.
virtual void update(Field< ValueType > &domainVector)
Per-iteration boundary update, applied on every correctBoundaryConditions() call.
virtual std::unique_ptr< SurfaceBoundaryFactory > clone() const =0
static std::string name()
virtual void set(Field< ValueType > &domainVector)
One-time patch initialisation, applied once per field before the first update().
virtual void correctBoundaryCondition(Field< ValueType > &field)=0
SurfaceBoundaryFactory(const UnstructuredMesh &mesh, const Dictionary &, localIdx patchID)
Represents a surface boundary field for a cell-centered finite volume method.
virtual void update(Field< ValueType > &domainVector)
virtual void set(Field< ValueType > &domainVector)
virtual void correctBoundaryCondition(Field< ValueType > &domainVector)
SurfaceBoundary(const UnstructuredMesh &mesh, const Dictionary &dict, localIdx patchID)
SurfaceBoundary(const SurfaceBoundary &other)