25#ifndef ADJOINT_LBSOLVER_H
26#define ADJOINT_LBSOLVER_H
58 using DESCRIPTOR =
typename LATTICES::values_t::template get<0>;
74 this->
lattice().template defineField<opti::F>(params.bulkIndicator, *params.fpop);
75 this->
lattice().template defineField<opti::DJDF>(params.objectiveDomain, *(params.dObjectiveDf));
auto & parameters(KEY=KEY())
Access to parameter structs as parameters(KEY())
LbSolver is a generic solver for Lattice-Boltzmann problems.
LATTICES::values_t::template decompose_into< SuperLattices > _sLattices
class for marking output with some text
Base class for solvers that solve both primal and dual problems.
AdjointLbSolver(utilities::TypeIndexedSharedPtrTuple< PARAMETERS > params)
virtual void computeResults() override
Store SuperLattice pointer for interaction with optimization routine.
void loadPrimalPopulations()
Helper for dual solver: init external fields from primal solution.
typename LATTICES::values_t::template get< 0 > DESCRIPTOR
SolverMode
Tags different simulation modes: compute either reference simulation or perform primal or dual (adjoi...
Top level namespace for all of OpenLB.
@ Simulation
Data available on host for e.g. functor evaluation.
Mapping between KEYs and instances of type VALUEs.