Hi Bernd, Thank you for your quick reply. We will try your suggestions.
Best regards Martin Get Outlook for Android<https://aka.ms/ghei36> From: Flemisch, Bernd Sent: Monday, February 25, 2:41 AM Subject: AW: [DuMuX] using el2p with fluid flow To: DuMuX User Forum, Martin Alberto Diaz Viera Hi, we are pretty convinced that the model works not only for the provided test cases. It has been used for several journal publications and doctoral theses. You are welcome to clone https://git.iws.uni-stuttgart.de/dumux-pub/beck2019a to test other settings and also the decoupled version. Martin Beck currently implements the Mandel problem into the abovementioned module. For this problem, the storage term differs slightly from the currently implemented one. We will let you know once it is available. Afterwards, we will also port the setup to 3.0 to have it available as a permanent test. Kind regards Bernd -- _______________________________________________________________ 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 _______________________________________________________________ Von: Dumux <dumux-boun...@listserv.uni-stuttgart.de> im Auftrag von Martin Diaz Viera <mdiaz...@yahoo.com.mx> Gesendet: Freitag, 22. Februar 2019 23:46 An: DuMuX User Forum; Koch, Timo; Edscott Wilson; Ed Scott Wilson Garcia; Martin Diaz Betreff: Re: [DuMuX] using el2p with fluid flow Dear Timo, Let me introduce myself in this talk. Edscott has been able to successfully develop a program based on Dumux 2.12 for the problem of low salinity water injection in the last year. In these moments we have a geomechanics project where we are even going to model the effects of fractures. We start with the linear elasticity model (elastic) and until now everything has worked as specified in the documentation. But with the problems "el1p2c" and "el2p" we have serious difficulties. I do not know if you could be so kind to help us as it seems that they only work for the particular test cases. In the problem el1p2c we would like it to be simplify to "el1p", i.e., a single component, and we would like to implement a Mandel-type problem (poroelastic problem). We have the same problem already implemented in COMSOL and in FEniCS and it gives the correct results. I wonder if I send you the data you or anybody else from your team could try to implement it? Thank you very much in advance. Regards, Martin -- ______________________________________________________ Dr. Martín A. Díaz Viera Instituto Mexicano del Petróleo Gerencia de Ingeniería de Recuperación Adicional Edificio 6, Cubículo 112 Eje Central Lázaro Cárdenas Norte 152, San Bartolo Atepehuacan, Gustavo A. Madero, Ciudad de México, C.P. 07730 Tel.: (5255) 9175-6473 E-mail: mdi...@imp.mx<mailto:mdi...@imp.mx>, mdiaz...@yahoo.com.mx<mailto:mdiaz...@yahoo.com.mx> WEB Page: http://www.esmg-mx.org/ El viernes, 22 de febrero de 2019 15:25:16 GMT-6, Timo Koch <timo.k...@iws.uni-stuttgart.de> escribió: Hi Edscott, Martin Beck implemented exactly that in his PhD thesis in Dumux 2.12 and the code should be somewhere (check dumux-pub) or ask Martin. Also this should be much easier to do in Dumux 3.0, as the structure was developed with something like sequential coupling in mind. Timo Am 22.02.2019 um 21:58 schrieb Ed Scott Wilson Garcia <edsc...@imp.mx<mailto:edsc...@imp.mx>>: I’ve kind of given up on this approach. What I want to try next is to create a multiprocess run, with an elastic model coupled sequentially with a 2p model. The first process will solve for the deformations (preferably with the el2p pdelab formula). This should give me a pressure distribution in the grid. Then use this pressure distribution to feed a 2p model for a single iteration with an outflow condition. This would have to spin until pressure converges. Once that happens, go back to the elastic and start again. Basically all I want to do for the moment is to emulate a Mandel problem, where we have a constant vertical pressure on top, no flow on the bottom and on the left, no vertical deformation on the left side and no horizontal deformation on the bottom. The right side is left open both the deformation and fluid flow. Fluid will be squished out. De: Dumux [mailto:dumux-boun...@listserv.uni-stuttgart.de] En nombre de Timo Koch Enviado el: viernes, 22 de febrero de 2019 02:47 p. m. Para: DuMuX User Forum Asunto: Re: [DuMuX] using el2p with fluid flow Am 21.02.2019 um 23:50 schrieb Ed Scott Wilson Garcia <edsc...@imp.mx<mailto:edsc...@imp.mx>>: I'm trying to use the el2p example program to construct a program with inflow/outflow. In order to test the feasibility, after simplifying to 2 dimensions instead of 3, I have used the data from a working problem with the 2p model. On the first test, set the boundary conditions allDirichlet for uxIdx and uyIdx and equal to zero. This would be equivalent to null elasticity and the model should reduce to the 2p model. Hi Edscott, why would it reduce to 2p? You can still have deformations inside the domain. Formulation was changed from the default to pNsW. And the fluidsystem was changed to the oil/water fluidsystem used a working 2p problem. The boundary conditions are set to: void boundaryTypesAtPos(BoundaryTypes &values, const GlobalPosition& globalPos) const { values.setDirichlet(uxIdx); values.setDirichlet(uyIdx); Scalar top = this->bBoxMax()[1]; Scalar bottom = this->bBoxMin()[1]; if (globalPos[1] > top - eps_) { values.setDirichlet(pressureIdx); // nonwetting pressure values.setOutflow(Indices::contiNEqIdx); } else // Neumann for the remaining boundaries values.setAllNeumann(); } void neumannAtPos(PrimaryVariables &values, const GlobalPosition& globalPos) const { if (globalPos[1] < eps_) { auto wflow = -1.37e-3; // water flow at bottom values[Indices::contiWEqIdx] = wflow; values[Indices::contiNEqIdx] = 0; // oil flow at bottom } else { // no-flow on the remaining Neumann-boundaries. values[Indices::contiWEqIdx] = 0; values[Indices::contiNEqIdx] = 0; } } void dirichletAtPos(PrimaryVariables &values, const GlobalPosition& globalPos) const { values = 0.0; Scalar top = this->bBoxMax()[1]; Scalar bottom = this->bBoxMin()[1]; Scalar right = this->bBoxMin()[0]; if (globalPos[1] > top - eps_){ values[Indices::pressureIdx] = 1.72e7; } } Since "void initialAtPos(PrimaryVariables &values, const GlobalPosition &globalPos)" is ignored, the initial pressure is set withinitial pressure is set with: void initializePressure() { for(const auto& vertex : vertices(gridView_)) { int vIdxGlobal = this->vertexMapper().index(vertex); GlobalPosition globalPos = vertex.geometry().corner(0); // initial approximate pressure distribution at start of initialization run pInit_[vIdxGlobal] = -1.72e7; } } Gravity is disabled so depthBore should not have any effect. Expected result: Should reproduce the 2p flow problem. why? Result: Segment violation crash. This is the gdb output following compilation with -O0. Looks like the fluid state is uninitialized. Did you debug and check why it is uninitialized? Is the error in Dumux code (does it occur in an unmodified setup)? You seem to use a custom fluid system with a member function “saturation()”?! It’s not clear to me why any fluid system should have such a function... (gdb) run Starting program: /home/FreeBSD12/home/edscott/geomecanica/projects/el2p/build-cmake/src/el2p -ParameterFile ./pd1-el2p.input [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". [Detaching after fork from child process 26597] [New Thread 0x7ffff47fc700 (LWP 26605)] [New Thread 0x7ffff3eeb700 (LWP 26609)] Don't panic... ! El2P_TestProblem: Initializing the fluid system for the el2p model myOilBrine-nt: Using non tabulated H20 properties. episode set to: 1 Initializing problem 'el2p' -------- problem init() el2pmodel calls: initialPressSat InitialPressSat: setPressure function called numDofs = 396 Writing result file for "el2p" Initialization took 0.132833 seconds on 1 processes. The cumulative CPU time was 0.132849 seconds. episode set to: 1 Assemble: r(x^k) = dS/dt + div F - q; M = grad r Thread 1 "el2p" received signal SIGSEGV, Segmentation fault. 0x0000555555aad073 in Dumux::ImmiscibleFluidState<double, Dumux::FluidSystems::OilBrine<double> >::saturation ( this=0x55555697d7f0, phaseIdx=0) at /opt/dune2.4/include/dumux/material/fluidstates/immiscible.hh:66 66 { return saturation_[phaseIdx]; } (gdb) list 61 *****************************************************/ 62 /*! 63 * @copydoc CompositionalFluidState::saturation() 64 */ 65 Scalar saturation(int phaseIdx) const 66 { return saturation_[phaseIdx]; } 67 68 /*! 69 * @copydoc CompositionalFluidState::moleFraction() 70 */ (gdb) print phaseIdx $1 = 0 (gdb) print saturation_[phaseIdx] Cannot access memory at address 0x55555697d800 Am I missing something here? Or is the el2p model restricted to no fluid flow on all boundaries? Analyzing the inheritance of the TypeTags, I find that the El2p_TestProblem chain of inheritance does include BoxTwoP but does include SequentialModel, this is the opposite of the GeneralizedDirichletProblem. This makes me wonder if the el2p model cannot model a problem the 2p model can if the elasticity details are turned off. Is that so? I don’t understand the question. Best wishes Timo The fact that the function void initialAtPos(PrimaryVariables &values, const GlobalPosition &globalPos)void initialAtPos(PrimaryVariables &values, const GlobalPosition &globalPos) is never called also makes me wonder if the problem is not compatible either. Is that so? Best regards, Edscott _______________________________________________ Dumux mailing list Dumux@listserv.uni-stuttgart.de<mailto:Dumux@listserv.uni-stuttgart.de> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux _______________________________________________ Dumux mailing list Dumux@listserv.uni-stuttgart.de<mailto:Dumux@listserv.uni-stuttgart.de> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux _______________________________________________ Dumux mailing list Dumux@listserv.uni-stuttgart.de<mailto:Dumux@listserv.uni-stuttgart.de> https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
_______________________________________________ Dumux mailing list Dumux@listserv.uni-stuttgart.de https://listserv.uni-stuttgart.de/mailman/listinfo/dumux