Skip to content

Question about dimensional consistency in AdvDiffSNDragForce3D

Due to recent bot attacks we have changed the sign-up process. If you want to participate in our forum please send a message via our contact form.

Forums OpenLB General Topics Question about dimensional consistency in AdvDiffSNDragForce3D

Viewing 1 post (of 1 total)
  • Author
    Posts
  • #11234
    liu
    Participant

    Dear OpenLB developers,

    I have a question regarding the implementation of the Schiller–Naumann drag model in:

    AdvDiffSNDragForce3D

    especially the following lines:

    dragCoeff = (9.*converter_.getPhysViscosity()
    *converter_.getPhysDensity()
    *converter_.getConversionFactorTime())
    /(2.*pRho_*pRadius_*pRadius_);

    Re_pCoeff = 2.*pRadius_/converter_.getPhysViscosity();

    and later:

    T Re_p = Re_pCoeff * abs(magVelF – magVel);

    My understanding is:

    pRadius_ and getPhysViscosity() are physical quantities,
    while computeU() usually returns lattice velocities.

    Thank you very much for your help and for the excellent OpenLB framework.

    Best regards

    template<typename T, typename DESCRIPTOR,
    typename ADLattice>
    AdvDiffSNDragForce3D<T,DESCRIPTOR,ADLattice>::AdvDiffSNDragForce3D(UnitConverter<T,DESCRIPTOR> const& converter_, T pRadius_, T pRho_)
    {
    initArg = 8;
    dragCoeff = (9.*converter_.getPhysViscosity()*converter_.getPhysDensity()*converter_.getConversionFactorTime()) / (2.*pRho_*pRadius_*pRadius_);
    Re_pCoeff = 2.*pRadius_/converter_.getPhysViscosity();
    }

    template<typename T, typename DESCRIPTOR,
    typename ADLattice>
    void AdvDiffSNDragForce3D<T,DESCRIPTOR,ADLattice>::applyForce(T force[], Cell<T,DESCRIPTOR> *nsCell, Cell<T,ADLattice> *adCell, T vel[], int latticeR[])
    {
    T velF[3] = {0.,0.,0.};
    nsCell->computeU(velF);
    T magVelF = pow((pow(velF[0],2.)+pow(velF[1],2.)+pow(velF[2],2.)),0.5);
    T magVel = pow((pow(vel[0],2.)+pow(vel[1],2.)+pow(vel[2],2.)),0.5);
    T Re_p = Re_pCoeff*abs(magVelF – magVel);
    for (int i=0; i < DESCRIPTOR::d; i++) {
    force[i] += dragCoeff*(1. + 0.15*pow(Re_p,0.687))*(velF[i]-vel[i]);
    }
    }

Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.