i try with 100 cells and i will tell you if it gives a good results. I hope
that it gives a good result.
Best regards

2015-10-21 21:46 GMT+02:00 Ait Mahiout Latifa <[email protected]>:

> no, sorry, there isn't the good files, sorry.
> the input file is
> [TimeManager]
> TEnd = 100000 # duration of the simulation [s]
> DtInitial = 10 # initial time step size [s]
>
> [Grid]
> UpperRightX = 600 # x-coordinate of the upper-right corner of the grid [m]
> UpperRightY = 600 # y-coordinate of the upper-right corner of the grid [m]
> NumberOfCellsX = 30 # x-resolution of the grid
> NumberOfCellsY = 30 # y-resolution of the grid
>
> best regards
>
> 2015-10-21 21:44 GMT+02:00 Martin <[email protected]>:
>
>> In your input file you have set:
>> [Grid]
>> UpperRightX = 300 # x-coordinate of the upper-right corner of the grid [m]
>> UpperRightY = 60 # y-coordinate of the upper-right corner of the grid [m]
>> NumberOfCellsX = 100 # x-resolution of the grid
>> NumberOfCellsY = 1 # y-resolution of the grid
>>
>> that means, that your grid has a length of 300m and a height of 60m but
>> your boundary conditions are set for a 600mx600m grid,
>> therefore you have to change that:
>> [Grid]
>> UpperRightX = 600 # x-coordinate of the upper-right corner of the grid [m]
>> UpperRightY = 600 # y-coordinate of the upper-right corner of the grid [m]
>> NumberOfCellsX = 100 # x-resolution of the grid
>> NumberOfCellsY = 100 # y-resolution of the grid
>>
>> Hopefully that will help.
>> Martin
>>
>>
>> On 10/21/2015 09:22 PM, Ait Mahiout Latifa wrote:
>>
>> i show that not all the files are joint to my precedent message, so
>> the intersec permeability is:
>>  for (int i = 0; i < dim; i++)
>>                 K_[i][i] = 1e-7;
>>
>> and i use the brook corey law:
>>  // residual saturations
>>         materialLawParams_.setSwr(0);
>>         materialLawParams_.setSnr(0);
>>
>>         // parameters for the Brooks-Corey Law
>>         // entry pressures
>>         materialLawParams_.setPe(500);
>>
>>         // Brooks-Corey shape parameters
>>         materialLawParams_.setLambda(2);
>>
>> (there is the exactly same files of tutorial_coupled problem
>> and the input file is joint in my precedent message.
>>
>> Beste regards
>>
>> 2015-10-21 21:15 GMT+02:00 Ait Mahiout Latifa <[email protected]
>> >:
>>
>>> I joint to you the file .input, he tutorialspatialparams_cdecoupled and
>>> the file .hh to show all parameters that i use.
>>> Thak's for the help.
>>> Best regards.
>>>
>>> 2015-10-21 21:10 GMT+02:00 Martin <
>>> <[email protected]>
>>> [email protected]>:
>>>
>>>> That probably means that the matrix is singular and therefore the
>>>> pressure equation can not be solved.
>>>> What grid are you using and what intrinsic permeability values? Which
>>>> material law?
>>>>
>>>>
>>>> Regards,
>>>> Martin
>>>>
>>>>
>>>> On 10/21/2015 08:12 PM, Ait Mahiout Latifa wrote:
>>>>
>>>> Hi  Martin,
>>>> ok, so i corrected the condition, so now, my code is:
>>>>
>>>>
>>>>  void boundaryTypesAtPos(BoundaryTypes &bcTypes, const GlobalPosition&
>>>> globalPos) const /*@\label{tutorial-decoupled:bctype}@*/
>>>>     {
>>>>
>>>>
>>>>             if ((globalPos[0] >  580-  eps_) && (globalPos[1] > 580-
>>>> eps_) )
>>>>             {
>>>>                 bcTypes.setDirichlet(pressEqIdx);
>>>>                 bcTypes.setDirichlet(satEqIdx);
>>>>                //bcTypes.setAllDirichlet(); // alternative if the same
>>>> BC is used for both types of equations
>>>>             }
>>>>             // all other boundaries
>>>>             else  if ((globalPos[0] <  20-  eps_) && (globalPos[1] <
>>>> 20-  eps_) )
>>>>             {
>>>>                 //bcTypes.setNeumann(pressEqIdx);
>>>>                 //bcTypes.setDirichlet(satEqIdx);
>>>>                bcTypes.setAllNeumann(); // alternative if the same BC
>>>> is used for both types of equations
>>>>             }
>>>>             else
>>>>                 bcTypes.setAllNeumann();
>>>>     }
>>>>     //! Value for dirichlet boundary condition at position globalPos.
>>>>     /*! In case of a dirichlet BC for the pressure equation the
>>>> pressure \f$ [Pa] \f$, and for
>>>>      *  the transport equation the saturation [-] have to be defined on
>>>> boundaries.
>>>>      *
>>>>      *  \param values Values of primary variables at the boundary
>>>>      *  \param intersection The boundary intersection
>>>>      *
>>>>      *  Alternatively, the function dirichletAtPos(PrimaryVariables
>>>> &values, const GlobalPosition& globalPos)
>>>>      *  could be defined, where globalPos is the vector including the
>>>> global coordinates of the finite volume.
>>>>      */
>>>>     void dirichletAtPos(PrimaryVariables &values, const GlobalPosition&
>>>> globalPos) const
>>>>     {
>>>>        values=0;
>>>>
>>>>        if ((globalPos[0] >  580-  eps_) && (globalPos[1] >  580-  eps_)
>>>> )
>>>>       {
>>>>         values[pwIdx] = 3.5e7;
>>>>         values[swIdx] = 0.0;
>>>>       }
>>>>        else if ((globalPos[0] <  20-  eps_) && (globalPos[1] <  20-
>>>> eps_) )
>>>>         values[swIdx] = 1.0;
>>>>     }
>>>>     //! Value for neumann boundary condition \f$ [\frac{kg}{m^3 \cdot
>>>> s}] \f$ at position globalPos.
>>>>     /*! In case of a neumann boundary condition, the flux of matter
>>>>      *  is returned as a vector.
>>>>      *
>>>>      *  \param values Boundary flux values for the different phases
>>>>      *  \param globalPos The position of the center of the finite volume
>>>>      *
>>>>      *  Alternatively, the function neumann(PrimaryVariables &values,
>>>> const Intersection& intersection) could be defined,
>>>>      *  where intersection is the boundary intersection.
>>>>      */
>>>>     void neumannAtPos(PrimaryVariables &values, const GlobalPosition&
>>>> globalPos) const /*@\label{tutorial-decoupled:neumann}@*/
>>>>     {
>>>>         values = 0;
>>>>          if ((globalPos[0] <  20-  eps_) && (globalPos[1] <  20-  eps_)
>>>> )
>>>>         {
>>>>             values[nPhaseIdx] = -1e-8;
>>>>              //values[wPhaseIdx] = 0.0;
>>>>         }
>>>>        else
>>>>
>>>>         {
>>>>             values[nPhaseIdx] = 0.0;
>>>>              values[wPhaseIdx] = 0.0;
>>>>         }
>>>>     }
>>>>     //! Initial condition at position globalPos.
>>>>     /*! Only initial values for saturation have to be given!
>>>>      *
>>>>      *  \param values Values of primary variables
>>>>      *  \param element The finite volume element
>>>>      *
>>>>      *  Alternatively, the function initialAtPos(PrimaryVariables
>>>> &values, const GlobalPosition& globalPos)
>>>>      *  could be defined, where globalPos is the vector including the
>>>> global coordinates of the finite volume.
>>>>      */
>>>>     void initial(PrimaryVariables &values,
>>>>             const Element &element) const
>>>> /*@\label{tutorial-decoupled:initial}@*/
>>>>     {
>>>>         values = 0;
>>>>     }
>>>>
>>>> private:
>>>>     const Scalar eps_;
>>>> };
>>>> } //end namespace
>>>>
>>>>
>>>>
>>>>
>>>> with eps_=1e-6
>>>>
>>>>
>>>>
>>>>  and now i have this error
>>>> Don't panic... !
>>>>
>>>> Rank 0: No parameter file given. Defaulting to
>>>> './tutorial_decoupled.input' for input file.
>>>> Initializing problem 'tutorial_decoupled'
>>>> Dune reported error: ISTLError
>>>> [apply:/home/latifa/Dumux_2.6.0/dune-istl-2.3.1/dune/istl/solvers.hh:651]:
>>>> breakdown in BiCGSTAB - rho 0 <= EPSILON 1e-80 after 8.5 iterations
>>>>
>>>> i don't understand why i have this error, and what does it mean?
>>>>
>>>> 2015-10-21 20:06 GMT+02:00 Martin Schneider <
>>>> <[email protected]>
>>>> [email protected]>:
>>>>
>>>>> Hi,
>>>>>
>>>>> the first if-query is wrong, corresponding to your boundary conditions:
>>>>>
>>>>>     if x < 20m and y < 20 m: q_w.n = -1e-8 and Sw=1
>>>>>     if x > 580 and y > 580: pw= 150 bar and Sn=1
>>>>>
>>>>> it should be
>>>>>              if ((globalPos[0] >  580-  eps_) && (globalPos[1] > 580-
>>>>> eps_) )
>>>>>             {
>>>>>                 bcTypes.setDirichlet(pressEqIdx);
>>>>>                 bcTypes.setDirichlet(satEqIdx);
>>>>>                //bcTypes.setAllDirichlet(); // alternative if the same
>>>>> BC is used for both types of equations
>>>>>             }
>>>>>
>>>>> instead of:
>>>>>              if ((globalPos[0] >  600-  eps_) && (globalPos[1] > 600-
>>>>> eps_) )
>>>>>             {
>>>>>                 bcTypes.setDirichlet(pressEqIdx);
>>>>>                 bcTypes.setDirichlet(satEqIdx);
>>>>>                //bcTypes.setAllDirichlet(); // alternative if the same
>>>>> BC is used for both types of equations
>>>>>             }
>>>>>
>>>>> Regards,
>>>>> Martin
>>>>>
>>>>>
>>>>> On 10/21/2015 07:34 PM, Ait Mahiout Latifa wrote:
>>>>>
>>>>>
>>>>> Hi,
>>>>> i want to change the boundary conditions in tutorial_decoupled
>>>>> problem, so that in an domain 600*600, are imposed the boundary 
>>>>> conditions:
>>>>> if x < 20m and y < 20 m: q_w.n = -1e-8 and Sw=1
>>>>> if x > 580 and y > 580: pw= 150 bar and Sn=1
>>>>> and no flux in the other parts of the domain.
>>>>> So, i change x and y in the .input file, and i have the folowing
>>>>> modifications in the tutorial_decoupled.hh:
>>>>> void boundaryTypesAtPos(BoundaryTypes &bcTypes, const GlobalPosition&
>>>>> globalPos) const /*@\label{tutorial-decoupled:bctype}@*/
>>>>>     {
>>>>>             if ((globalPos[0] >  600-  eps_) && (globalPos[1] > 600-
>>>>> eps_) )
>>>>>             {
>>>>>                 bcTypes.setDirichlet(pressEqIdx);
>>>>>                 bcTypes.setDirichlet(satEqIdx);
>>>>>                //bcTypes.setAllDirichlet(); // alternative if the same
>>>>> BC is used for both types of equations
>>>>>             }
>>>>>             // all other boundaries
>>>>>             else  if ((globalPos[0] <  20-  eps_) && (globalPos[1] <
>>>>> 20-  eps_) )
>>>>>             {
>>>>>                 bcTypes.setNeumann(pressEqIdx);
>>>>>                 bcTypes.setDirichlet(satEqIdx);
>>>>>                //bcTypes.setAllNeumann(); // alternative if the same
>>>>> BC is used for both types of equations
>>>>>             }
>>>>>             else
>>>>>                 bcTypes.setAllNeumann();
>>>>>     }
>>>>>     //! Value for dirichlet boundary condition at position globalPos.
>>>>>     /*! In case of a dirichlet BC for the pressure equation the
>>>>> pressure \f$ [Pa] \f$, and for
>>>>>      *  the transport equation the saturation [-] have to be defined
>>>>> on boundaries.
>>>>>      *
>>>>>      *  \param values Values of primary variables at the boundary
>>>>>      *  \param intersection The boundary intersection
>>>>>      *
>>>>>      *  Alternatively, the function dirichletAtPos(PrimaryVariables
>>>>> &values, const GlobalPosition& globalPos)
>>>>>      *  could be defined, where globalPos is the vector including the
>>>>> global coordinates of the finite volume.
>>>>>      */
>>>>>     void dirichletAtPos(PrimaryVariables &values, const
>>>>> GlobalPosition& globalPos) const
>>>>>     {
>>>>>        if ((globalPos[0] >  600-  eps_) && (globalPos[1] >  600-
>>>>> eps_) )
>>>>>       {
>>>>>         values[pwIdx] = 3.5e7;
>>>>>         values[swIdx] = 0.0;
>>>>>       }
>>>>>        else if ((globalPos[0] <  20-  eps_) && (globalPos[1] <  20-
>>>>> eps_) )
>>>>>         values[swIdx] = 1.0;
>>>>>     }
>>>>>     //! Value for neumann boundary condition \f$ [\frac{kg}{m^3 \cdot
>>>>> s}] \f$ at position globalPos.
>>>>>     /*! In case of a neumann boundary condition, the flux of matter
>>>>>      *  is returned as a vector.
>>>>>      *
>>>>>      *  \param values Boundary flux values for the different phases
>>>>>      *  \param globalPos The position of the center of the finite
>>>>> volume
>>>>>      *
>>>>>      *  Alternatively, the function neumann(PrimaryVariables &values,
>>>>> const Intersection& intersection) could be defined,
>>>>>      *  where intersection is the boundary intersection.
>>>>>      */
>>>>>     void neumannAtPos(PrimaryVariables &values, const GlobalPosition&
>>>>> globalPos) const /*@\label{tutorial-decoupled:neumann}@*/
>>>>>     {
>>>>>         values = 0;
>>>>>          if ((globalPos[0] <  20-  eps_) && (globalPos[1] <  20-
>>>>> eps_) )
>>>>>         {
>>>>>             values[nPhaseIdx] = -1e-8;
>>>>>              values[wPhaseIdx] = 0.0;
>>>>>         }
>>>>>        else
>>>>>
>>>>>         {
>>>>>             values[nPhaseIdx] = 0.0;
>>>>>              values[wPhaseIdx] = 0.0;
>>>>>         }
>>>>>     }
>>>>>     //! Initial condition at position globalPos.
>>>>>     /*! Only initial values for saturation have to be given!
>>>>>      *
>>>>>      *  \param values Values of primary variables
>>>>>      *  \param element The finite volume element
>>>>>      *
>>>>>      *  Alternatively, the function initialAtPos(PrimaryVariables
>>>>> &values, const GlobalPosition& globalPos)
>>>>>      *  could be defined, where globalPos is the vector including the
>>>>> global coordinates of the finite volume.
>>>>>      */
>>>>>     void initial(PrimaryVariables &values,
>>>>>             const Element &element) const
>>>>> /*@\label{tutorial-decoupled:initial}@*/
>>>>>     {
>>>>>         values = 0;
>>>>>     }
>>>>>
>>>>>
>>>>> There isn't a problem in compilation, but in execution, io have the
>>>>> folowing error:
>>>>>
>>>>>  ./tutorial_decoupled
>>>>>
>>>>> Wherever he saw a hole he always wanted to know the depth of it. To
>>>>> him this was important.
>>>>>  - Jules Verne, A journey to the center of the earth
>>>>>
>>>>> Rank 0: No parameter file given. Defaulting to
>>>>> './tutorial_decoupled.input' for input file.
>>>>> Initializing problem 'tutorial_decoupled'
>>>>> Dune reported error: ISTLError
>>>>> [apply:/home/latifa/Dumux_2.6.0/dune-istl-2.3.1/dune/istl/solvers.hh:679]:
>>>>> h=0 in BiCGSTAB
>>>>>
>>>>> So please, where os the problem in my definition of the boundary
>>>>> conditions? An how i can arrange it?
>>>>> Best regards.
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Dumux mailing 
>>>>> [email protected]https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> M.Sc. Martin Schneider
>>>>> University of Stuttgart           
>>>>> Institute for Modelling Hydraulic and Environmental Systems
>>>>> Department of Hydromechanics and Modelling of Hydrosystems
>>>>> Pfaffenwaldring 61
>>>>> D-70569 Stuttgart
>>>>> Tel: (+49) 0711/ 685-69159
>>>>> Fax: (+49) 0711/ 685-60430
>>>>> E-Mail: [email protected]
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Dumux mailing list
>>>>> [email protected]
>>>>> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
>>>>>
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Dumux mailing 
>>>> [email protected]https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Dumux mailing list
>>>> [email protected]
>>>> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
>>>>
>>>>
>>>
>>
>>
>> _______________________________________________
>> Dumux mailing 
>> [email protected]https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
>>
>>
>>
>> _______________________________________________
>> Dumux mailing list
>> [email protected]
>> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
>>
>>
>
_______________________________________________
Dumux mailing list
[email protected]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux

Reply via email to