Re: [DuMuX] Stuck with boundary condition setting

2013-01-14 Thread Christoph Grüninger
Hi Romain,
are you sure, that you use the right x-values in the method 
boundaryTypes(..)? Try using the onUpperBoundary_(..) as several other 
test cases use them.

You do not need to change anything in neumann(..), because in 
bounadryTypes(..) you specified the injectors to be of Dirichlet type. 
Add the right value for dirichlet(..) and it should work.

Salut
Christoph
___
Dumux mailing list
Dumux@listserv.uni-stuttgart.de
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux


Re: [DuMuX] Stuck with boundary condition setting

2013-01-14 Thread Bernd Flemisch

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 getMyCurrentState.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
Dumux@listserv.uni-stuttgart.de
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: be...@iws.uni-stuttgart.de
D-70569 Stuttgart  url: www.hydrosys.uni-stuttgart.de
_

___
Dumux mailing list
Dumux@listserv.uni-stuttgart.de
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux