Dear DuMux Team,

I hope this email finds you well and safe.

I am writing to kindly ask the following:

 Given:

  1.  I am using porous medium flow model {injection Problem similar to the 
posted example on GitLab)
  2.
  3.  I am using PorosityAtPos ( const GlobalPos& globalPos) const
  4.
  5.  {

      if (isInCement_(globalPos))  {

       cementPorosity_ = a*std::pow(fc,3) + b*std::pow(fc,2) + c*fc + d;   // 
a,b,c and d are constants

        return cementPorsoity_;

      }

     else if (isInAquifer_(globalPos))
            return aquiferPorosity_;
        else

        return overburdenPorosity_;


     }



  1.
  2.
I am using permabilityAtPos ( const GlobalPos& globalPos) const
  3.
  4.  {

        Scalar cementPor_;
        Scalar cementK_;
        const Scalar dc_Porosity = 0.3;
        Scalar InitialCementK_ = 8.645e-13;

        if (isInCement_(globalPos))
           {

                cementPor_ = porosityAtPos( globalPos);    // calling porosity 
function
                cementK_ = InitialCementK_ *(std::pow(((1-dc_Porosity)/(1- 
cementPor_)),2) *(std::pow(( cementPor_/dc_Porosity), 3)));


            std::cout<< " Porosity:"<< cementPor_ <<" Permeability:"<< cementK_ 
<< std::endl;

            return cementK_;
           }


        else if (isInAquifer_(globalPos))
            return aquiferK_;

        else
            return overburdenK_;

     }


  1.  I am using the function to return the permeability for additional vtk 
output
  2.
  3.  const std::vector<Scalar>& getpermeability()

    {
        return permeability_;


        }
  4.  I am using function that updates the permeability for additional vtk 
output
  5.
  6.  void updateVtkOutput(const SolutionVector& curSol)
    {
        auto fvGeometry = localView(this->gridGeometry());
        for (const auto& element : elements(this->gridGeometry().gridView()))
        {
            const auto elemSol = elementSolution(element, curSol, 
this->gridGeometry());
            fvGeometry.bindElement(element);

            for (auto&& scv : scvs(fvGeometry))
            {
                VolumeVariables volVars;
                volVars.update(elemSol, *this, element, scv);
                const auto dofIdxGlobal = scv.dofIndex();
                permeability_[dofIdxGlobal] = volVars.permeability();

    }
            }

    }
  7.
  8.  I added the function to return the permeability for additional vtk output 
in the main.cc

       vtkWriter.addField(problem->getpermeability(), "Permeability");

       problem->updateVtkOutput(x);


       vtkWriter.write(0.0);

Issue:

1) When I am printing the values of the permeability of the cement layer in the 
terminal, I can see the different values of permeability (which is dependent on 
porosity) and I can see the new porosity values of cement that I am getting 
from a certain equation.
2) In the vtu files and paraview I can see also the different porosity values 
of cement
3) However, in vtu files and paraview I can see only constant permeability 
value of the cement layer  which is the initial value (8.645e-13)

So, how can I fix this issue " view the different values of permeability of the 
cement layer in vtu files (since only the initial cement permeability is 
returned) knowing that I can view the new values of permeability while printing 
them in the terminal'?

Thanks for your time and help.

Best Regards,
Mohammad Hodroj


_______________________________________________
DuMux mailing list
[email protected]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux

Reply via email to