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 > >
tutorial_decoupled.input
Description: Binary data
_______________________________________________ Dumux mailing list [email protected] https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
