Initializing domain with a specific velocities

Hello!

I want to initialize my domain with specific velocities. Following is the class created to apply velocity

[code=“cpp”]
template
class ImposeVelocity{
public:
ImposeVelocity(MultiTensorField3D<T,3> velocity_)
:velocity(velocity_)
{ }

void operator()(plint iX, plint iY, plint iZ, T& rho, Array<T,3>& u) const {
    rho = 0.0;
    u[0] = velocity.get(iX,iY,iZ)[0];
    u[1] = velocity.get(iX,iY,iZ)[1];
    u[2] = velocity.get(iX,iY,iZ)[2];
}

private:
MultiTensorField3D<T,3> velocity;
};





Then I have used this in initializing :

[code="cpp"]
// Initializing with equilibrium values
    initializeAtEquilibrium (a_lattice, a_lattice.getBoundingBox(),new BounceBackNodes<T>(ymixer), ImposeVelocity<T>(domainvelocity));
defineDynamics(a_lattice, a_lattice.getBoundingBox(), new BounceBackNodes<T>(ymixer), new BounceBack<T,DESCRIPTOR>);
a_lattice.initialize(); // Initializes the lattice with constant density and zero velocity


But I am getting following compilation error:

undefined reference to `void plb::initializeAtEquilibrium<double, plb::descriptors::D3Q19Descriptor, ImposeVelocity >(plb::MultiBlockLattice3D<double, plb::descriptors::D3Q19Descriptor>&, plb::Box3D, plb::DomainFunctional3D*, ImposeVelocity)’|

Can anyone suggest how I can impose velocity in whole domain?

Thanks in advance.