I tried with 100 cells but it will run for 25 minutes and has not finished yet, however TEND=10000 s only. So what's the problem in your opinion? Best regards.
2015-10-21 21:52 GMT+02:00 Ait Mahiout Latifa <[email protected]>: > 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
