Thanks Bernd it works ! Thank you very much for your detailed email. Thanks Christoph. freundlichen Grüßen, Romain.
________________________________ De : [email protected] [mailto:[email protected]] De la part de Bernd Flemisch Envoyé : lundi 14 janvier 2013 15:32 À : DuMuX User Forum Objet : Re: [DuMuX] Stuck with boundary condition setting Hi Romain, in statements like "globalPos[idx]" or "this->bboxMax()[idx]," the "idx" refers to the coordinate direction, so in 2D "0" means the x- and "1" the y-direction. The x-axis is directed towards the right and the y-axis towards the top. This means that in the "boundaryTypes" function, you have to replace else if (globalPos[1] < eps_ ... by else if (globalPos[1] > this->bboxMax()[1] - eps_ ... In the "neumann" function, you have to replace Scalar right = this->bboxMax()[1]; if (globalPos[1] > right - eps_ ) { by Scalar right = this->bboxMax()[0]; if (globalPos[0] > right - eps_ ) { Kind regards Bernd On 01/14/2013 03:11 PM, CHASSAGNE Romain wrote: Dear Dumux users, I am learning Dumux and then I set up a test case, but I am stuck with boundaries conditions, I failed to manage what I wanted.. I have attached an image of what I look for (MyGoal.jpg), I managed to do MyCurrentState.jpg so far. It means that the top and bottom boundaries conditions have to be the other way around (bottom to top and top to bottom). I guess there are something to do with the green lines, I tried different things but it let the boundaries conditions unchanged, which is odd.. and then I contact you. The piece (concerning boundaries conditions) of the code I have done so far to get MyCurrentState.jpg from "tutorialproblem_coupled.hh" : void boundaryTypes(BoundaryTypes &bcTypes, const Vertex &vertex) const { const GlobalPosition &globalPos = vertex.geometry().center(); // left boundary, injector1 if (globalPos[0] < eps_ && globalPos[1] < 1000) bcTypes.setAllDirichlet(); // Well here is the problem, meant to be the top boundary condition, currently it is not. else if (globalPos[1] < eps_ && globalPos[0] > 2500 && globalPos[0]<3500) bcTypes.setAllDirichlet(); else // neuman for the remaining boundaries bcTypes.setAllNeumann(); } //! Evaluates the Dirichlet boundary conditions for a finite volume //! on the grid boundary. Here, the 'values' parameter stores //! primary variables. void dirichlet(PrimaryVariables &values, const Vertex &vertex) const { values[Indices::pwIdx] = 200.0e3; // 200 kPa = 2 bar values[Indices::SnIdx] = 0.0; // 0 % oil saturation on left boundary } //! Evaluates the boundary conditions for a Neumann boundary //! segment. Here, the 'values' parameter stores the mass flux in //! [kg/(m^2 * s)] in normal direction of each phase. Negative //! values mean influx. void neumann(PrimaryVariables &values, const Element &element, const FVElementGeometry &fvGeometry, const Intersection &is, int scvIdx, int boundaryFaceIdx) const { const GlobalPosition &globalPos = fvGeometry.boundaryFace[boundaryFaceIdx].ipGlobal; Scalar right = this->bboxMax()[1]; // extraction of oil on the right boundary for approx. 1.e6 seconds if (globalPos[1] > right - eps_ ) { // oil outflux of 30 g/(m * s) on the right boundary. values[Indices::contiWEqIdx] = 0; values[Indices::contiNEqIdx] = 3e-2; } else { // no-flow on the remaining Neumann-boundaries. values[Indices::contiWEqIdx] = 0; values[Indices::contiNEqIdx] = 0; } Thanks to the Dumux community Cheers, Romain. __________________________ Avant d'imprimer, pensez à l'environnement ! Please consider the environment before printing ! Ce message et toutes ses pièces jointes sont confidentiels et établis à l'intention exclusive de ses destinataires. Toute utilisation non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse. IFP Energies nouvelles décline toute responsabilité au titre de ce message. This message and any attachments are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited. IFP Energies nouvelles should not be liable for this message. __________________________ _______________________________________________ Dumux mailing list [email protected] https://listserv.uni-stuttgart.de/mailman/listinfo/dumux -- _____________________________________________________________________ Bernd Flemisch phone: +49 711 685 69162 IWS, Universität Stuttgart fax: +49 711 685 60430 Pfaffenwaldring 61 email: [email protected] D-70569 Stuttgart url: www.hydrosys.uni-stuttgart.de _____________________________________________________________________ __________________________ Avant d'imprimer, pensez à l'environnement ! Please consider the environment before printing ! Ce message et toutes ses pièces jointes sont confidentiels et établis à l'intention exclusive de ses destinataires. Toute utilisation non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse. IFP Energies nouvelles décline toute responsabilité au titre de ce message. This message and any attachments are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited. IFP Energies nouvelles should not be liable for this message. __________________________
_______________________________________________ Dumux mailing list [email protected] https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
