From Arne.Morten.Kvarving at sintef.no Mon Jul 10 11:54:32 2017 From: Arne.Morten.Kvarving at sintef.no (Arne Morten Kvarving) Date: Mon, 10 Jul 2017 11:54:32 +0000 Subject: [Opm] jenkins downtime Message-ID: hi, seems there is not a lot of activity, but in any case: i will have to shut jenkins down for upgrades (dune 2.4.1). i do not anticipate a long downtime. this will take place at 14:30 cet. please do not flood it with jobs as i will have to wait for those to finish before the shutdown commences. arnem -------------- next part -------------- An HTML attachment was scrubbed... URL: From Arne.Morten.Kvarving at sintef.no Mon Jul 10 15:09:14 2017 From: Arne.Morten.Kvarving at sintef.no (Arne Morten Kvarving) Date: Mon, 10 Jul 2017 15:09:14 +0000 Subject: [Opm] jenkins downtime In-Reply-To: References: Message-ID: jenkins is back and open for business. all builds are now dune 2.4.1 based. it fixed the tests that somebody broke during my absence, ref https://ci.opm-project.org/job/opm-simulators/366/ and https://ci.opm-project.org/job/opm-simulators/367 i suspect the breakage was just a timing thing though, as i could never reproduce it locally, neither with 2.3.1 (or 2.4.1). the norne well curves seems fine to me, but i'm not very experienced in reading these graphs - e.g. how far from the reference are we these days etc. so if somebody that has looked at more of those than me could give it a looksie i would appreciate that. strictly speaking the ewoms builder is not completely done but i'm 99.9% certain (famous last words) it will pass fine, and in case of breakage it will only be some test application which do not affect other modules. arnem ________________________________ Fra: Opm på vegne av Arne Morten Kvarving Sendt: 10. juli 2017 13:54:32 Til: opm at opm-project.org Emne: [Opm] jenkins downtime hi, seems there is not a lot of activity, but in any case: i will have to shut jenkins down for upgrades (dune 2.4.1). i do not anticipate a long downtime. this will take place at 14:30 cet. please do not flood it with jobs as i will have to wait for those to finish before the shutdown commences. arnem -------------- next part -------------- An HTML attachment was scrubbed... URL: From joakira at stud.ntnu.no Thu Jul 27 19:15:32 2017 From: joakira at stud.ntnu.no (Joakim R. Andersen) Date: Thu, 27 Jul 2017 16:15:32 -0300 Subject: [Opm] Explicitly setting the initial solution of EBOS. Message-ID: Hi, all. I am trying to calculate the numerical Jacobian of the reservoir residuals w.r.t. the initial state. To do this I need to replace the initial solution of EBOS with a perturbed one. I've been trying for a while, and I am getting nowhere. I've attached the code. It is placed at the end of "nonlinearIteration" in "BlackoilModelEbos.hpp": if (!report.converged) { ... } else { // all the code goes here. } I've also made the "nonlinearIteration" take the initial reservoir state as an input. Thus, we have both the final state and the initial state when the "else"-case is invoked. Setting the initial solution as done in the attachment does not work. How can I pass this information further such that the "linearize()" function (the one that calculates the residuals and the Jacobian in EBOS) will be affected? Let me be more precise. The code runs, and the initial solution is set, but the "linearize()" function are not aware of the change. Best regards, Joakim R. Andersen -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: numerical_jacobian.cpp Type: text/x-c++src Size: 3707 bytes Desc: not available URL: From and at poware.org Fri Jul 28 14:41:32 2017 From: and at poware.org (Andreas Lauser) Date: Fri, 28 Jul 2017 16:41:32 +0200 Subject: [Opm] Explicitly setting the initial solution of EBOS. In-Reply-To: References: Message-ID: <5734621.gf3xVIe6VY@heuristix> Hi Joakim, it looks like you modify copies of the objects which are actually used by the simulator. I can't be too sure because the file which you attached is incomplete. cheers Andreas On Donnerstag, 27. Juli 2017 16:15:32 CEST Joakim R. Andersen wrote: > Hi, all. > > I am trying to calculate the numerical Jacobian of the reservoir residuals > w.r.t. the initial state. To do this I need to replace the initial solution > of EBOS with a perturbed one. I've been trying for a while, and I am > getting nowhere. > > I've attached the code. It is placed at the end of "nonlinearIteration" in > "BlackoilModelEbos.hpp": > > if (!report.converged) { ... } > > else { > // all the code goes here. > } > > I've also made the "nonlinearIteration" take the initial reservoir state as > an input. Thus, we have both the final state and the initial state when the > "else"-case is invoked. > > Setting the initial solution as done in the attachment does not work. How > can I pass this information further such that the "linearize()" function > (the one that calculates the residuals and the Jacobian in EBOS) will be > affected? > > Let me be more precise. The code runs, and the initial solution is set, but > the "linearize()" function are not aware of the change. > > > Best regards, > Joakim R. Andersen -- The Illuminati don't run the world. C programmers do. -- Daniel Angel Muñoz Trejo -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: This is a digitally signed message part. URL: From and at poware.org Mon Jul 31 14:02:58 2017 From: and at poware.org (Andreas Lauser) Date: Mon, 31 Jul 2017 16:02:58 +0200 Subject: [Opm] Explicitly setting the initial solution of EBOS. In-Reply-To: References: <5734621.gf3xVIe6VY@heuristix> Message-ID: <8834783.iWiAdjetp2@heuristix> Hi, On Montag, 31. Juli 2017 10:12:01 CEST you wrote: > Thank you for your answer. I've attached a minimum working example. As you > can see, the residuals do not change after the update of the initial > solution. > In the example, the initial solution is (attempted) to be set to be equal > to the final state. sorry, but I cannot see that you change anything compared to the current solution before the call to convertInput(tmp_reservoir_state), so getting the same result is the expected behavior. Also, I still can't see how your code is supposed to be used without doing some guesswork of where it should go (I suppose the run() method of the simulator class?) it would be less confusing if you would send patches (i.e., the output of `git diff origin/master`). I've attached a patch which probably does what you want. In particular, note that if you cannot guarantee a fixed number of changed variables of the result due to a single change of the initial condition, the problem is not sparse. cheers Andreas > 2017-07-28 11:41 GMT-03:00 Andreas Lauser : > > Hi Joakim, > > > > it looks like you modify copies of the objects which are actually used by > > the > > simulator. I can't be too sure because the file which you attached is > > incomplete. > > > > cheers > > > > Andreas > > > > On Donnerstag, 27. Juli 2017 16:15:32 CEST Joakim R. Andersen wrote: > > > Hi, all. > > > > > > I am trying to calculate the numerical Jacobian of the reservoir > > > > residuals > > > > > w.r.t. the initial state. To do this I need to replace the initial > > > > solution > > > > > of EBOS with a perturbed one. I've been trying for a while, and I am > > > getting nowhere. > > > > > > I've attached the code. It is placed at the end of "nonlinearIteration" > > > > in > > > > > "BlackoilModelEbos.hpp": > > > > > > if (!report.converged) { ... } > > > > > > else { > > > // all the code goes here. > > > } > > > > > > I've also made the "nonlinearIteration" take the initial reservoir state > > > > as > > > > > an input. Thus, we have both the final state and the initial state when > > > > the > > > > > "else"-case is invoked. > > > > > > Setting the initial solution as done in the attachment does not work. > > > How > > > can I pass this information further such that the "linearize()" function > > > (the one that calculates the residuals and the Jacobian in EBOS) will be > > > affected? > > > > > > Let me be more precise. The code runs, and the initial solution is set, > > > > but > > > > > the "linearize()" function are not aware of the change. > > > > > > > > > Best regards, > > > Joakim R. Andersen > > > > -- > > The Illuminati don't run the world. C programmers do. > > > > -- Daniel Angel Muñoz Trejo > > > > _______________________________________________ > > Opm mailing list > > Opm at opm-project.org > > http://opm-project.org/cgi-bin/mailman/listinfo/opm -- The Illuminati don't run the world. C programmers do. -- Daniel Angel Muñoz Trejo -------------- next part -------------- A non-text attachment was scrubbed... Name: sensitivity.patch Type: text/x-patch Size: 1922 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: This is a digitally signed message part. URL: From joakira at stud.ntnu.no Mon Jul 31 14:35:48 2017 From: joakira at stud.ntnu.no (Joakim R. Andersen) Date: Mon, 31 Jul 2017 11:35:48 -0300 Subject: [Opm] Explicitly setting the initial solution of EBOS. In-Reply-To: <8834783.iWiAdjetp2@heuristix> References: <5734621.gf3xVIe6VY@heuristix> <8834783.iWiAdjetp2@heuristix> Message-ID: Hi, Andreas. Ok. Sorry for that. I've now made a "diff"-file. I agree that the current solution remains the same, but because the first argument to ConvertInput is 0, the initial solution should also be updated, and be set to the same as the current solution. Maybe here is where the misunderstanding lies: When we calculate the residuals using 'linearize()', the initial solution of the substep is also used, right? In other words, the solution which is stored in: _ebosSimulator.model().solution(/*timeIdx=*/1) is a part of the calculation of the residuals? Best regards, Joakim R. Andersen 2017-07-31 11:02 GMT-03:00 Andreas Lauser : > Hi, > > On Montag, 31. Juli 2017 10:12:01 CEST you wrote: > > Thank you for your answer. I've attached a minimum working example. As > you > > can see, the residuals do not change after the update of the initial > > solution. > > In the example, the initial solution is (attempted) to be set to be equal > > to the final state. > > sorry, but I cannot see that you change anything compared to the current > solution before the call to convertInput(tmp_reservoir_state), so getting > the > same result is the expected behavior. Also, I still can't see how your > code is > supposed to be used without doing some guesswork of where it should go (I > suppose the run() method of the simulator class?) it would be less > confusing > if you would send patches (i.e., the output of `git diff origin/master`). > > I've attached a patch which probably does what you want. In particular, > note > that if you cannot guarantee a fixed number of changed variables of the > result > due to a single change of the initial condition, the problem is not sparse. > > cheers > Andreas > > > 2017-07-28 11:41 GMT-03:00 Andreas Lauser : > > > Hi Joakim, > > > > > > it looks like you modify copies of the objects which are actually used > by > > > the > > > simulator. I can't be too sure because the file which you attached is > > > incomplete. > > > > > > cheers > > > > > > Andreas > > > > > > On Donnerstag, 27. Juli 2017 16:15:32 CEST Joakim R. Andersen wrote: > > > > Hi, all. > > > > > > > > I am trying to calculate the numerical Jacobian of the reservoir > > > > > > residuals > > > > > > > w.r.t. the initial state. To do this I need to replace the initial > > > > > > solution > > > > > > > of EBOS with a perturbed one. I've been trying for a while, and I am > > > > getting nowhere. > > > > > > > > I've attached the code. It is placed at the end of > "nonlinearIteration" > > > > > > in > > > > > > > "BlackoilModelEbos.hpp": > > > > > > > > if (!report.converged) { ... } > > > > > > > > else { > > > > // all the code goes here. > > > > } > > > > > > > > I've also made the "nonlinearIteration" take the initial reservoir > state > > > > > > as > > > > > > > an input. Thus, we have both the final state and the initial state > when > > > > > > the > > > > > > > "else"-case is invoked. > > > > > > > > Setting the initial solution as done in the attachment does not work. > > > > How > > > > can I pass this information further such that the "linearize()" > function > > > > (the one that calculates the residuals and the Jacobian in EBOS) > will be > > > > affected? > > > > > > > > Let me be more precise. The code runs, and the initial solution is > set, > > > > > > but > > > > > > > the "linearize()" function are not aware of the change. > > > > > > > > > > > > Best regards, > > > > Joakim R. Andersen > > > > > > -- > > > The Illuminati don't run the world. C programmers do. > > > > > > -- Daniel Angel Muñoz Trejo > > > > > > _______________________________________________ > > > Opm mailing list > > > Opm at opm-project.org > > > http://opm-project.org/cgi-bin/mailman/listinfo/opm > > > -- > The Illuminati don't run the world. C programmers do. > -- Daniel Angel Muñoz Trejo > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: patch_changing_initial_state Type: application/octet-stream Size: 2275 bytes Desc: not available URL: