Using Templates for plb::Dynamics

Hi all,
So I figured out that computeHeat FLux can only be used if am using a plb::dynamics class (or the others enlisted in the dev guide). I can’t really get the right template for that. Primarily I haven’t done enough background in OOP to do templates. But any suggestion would really be appreciated here is a sample of the code that I am working with

[i]//processor is mostly similar to the Rayleigh Bernard Temperature Field in Bousinesqq2D example
template<typename T, template class adDescriptor>

struct computeHeatFlux2D :
public BoxProcessingFunctional2D_L<T,adDescriptor>
: parameters(parameters_)
{ }
virtual void process(Box2D domain, BlockLattice2D<T,adDescriptor>& adLattice)
//Dot2D absoluteOffset = adLattice.getLocation();
Array<T,adDescriptor::d> Fl(0.0, 0.0);

    for (plint iX=domain.x0; iX<=domain.x1; ++iX)
        for (plint iY=domain.y0; iY<=domain.y1; ++iY)
            //plint absoluteX = absoluteOffset.x + iX;
            //plint absoluteY = absoluteOffset.y + iY;
            plb::Dynamics::computeHeatFlux(adLattice.get(iX,iY), Fl);
virtual computeHeatFlux2D<T,adDescriptor>* clone() const
    return new computeHeatFlux2D<T,adDescriptor>(*this);

virtual void getTypeOfModification(std::vector<modif::ModifT>& modified) const {
    modified[0] = modif::staticVariables;

virtual BlockDomain::DomainT appliesTo() const {
    return BlockDomain::bulkAndEnvelope;

private :

Later I will use flux to calculate the total flux for the problem. Any other alternatives will also be appreciated.