Hi Mohammad, This seems like a C++ problem not a Dumux issue. What have you tried so far? What does it mean “it will abort”?
"Method 2” has the wrong logic. “Method 1” looks correct (apart from underscore missing for injectionEnd_). Your attached file neither implements 1 nor 2. Best Timo On 23 Nov 2022, at 10:30, Mohammad Hodroj (Student) <mn...@mail.aub.edu<mailto:mn...@mail.aub.edu>> wrote: Dear DuMux Community, I hope this email finds you well. I am writing to kindly ask for your support in the following: a) I am using porous medium flow b) I am using injection problem I need to inject gas between injectionDuration_ = 4.7304e8 seconds and time = injectionEnd_ = 4.80816e8 seconds (3months) but it is not working. Once it reaches the time it will abort. I tired the following: Method:1 BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const { BoundaryTypes bcTypes; bcTypes.setAllNeumann(); return bcTypes; } NumEqVector neumannAtPos(const GlobalPosition &globalPos) const { NumEqVector values(0.0); if (time_ > injectionDuration_ && time_ < injectionEnd && globalPos[0] <3.15 + eps_ && globalPos[0] > 3.075 - eps_ && globalPos[1] < 0.9*this->gridGeometry().bBoxMax()[1]) { values[Indices::conti0EqIdx + FluidSystem::CH4Idx] = -5e-5; values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; } return values; } Method 2 NumEqVector neumannAtPos(const GlobalPosition &globalPos) const { // initialize values to zero, i.e. no-flow Neumann boundary conditions NumEqVector values(0.0); if (time_ < injectionDuration_ && globalPos[0] <3.15 + eps_ && globalPos[0] > 3.075 - eps_ && globalPos[1] < 0.9*this->gridGeometry().bBoxMax()[1]) { values[Indices::conti0EqIdx + FluidSystem::CH4Idx] = 0.0; values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; } else if (time_ > injectionDuration_ && globalPos[0] <3.15 + eps_ && globalPos[0] > 3.075 - eps_ && globalPos[1] < 0.9*this->gridGeometry().bBoxMax()[1]) { values[Indices::conti0EqIdx + FluidSystem::CH4Idx] = -5e-5; values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; } else if (time_ < injectionEnd_ && globalPos[0] <3.15 + eps_ && globalPos[0] > 3.075 - eps_ && globalPos[1] < 0.9*this->gridGeometry().bBoxMax()[1]) { values[Indices::conti0EqIdx + FluidSystem::CH4Idx] = -5e-5; values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; } else if (time_ > injectionEnd_ && globalPos[0] <3.15 + eps_ && globalPos[0] > 3.075 - eps_ && globalPos[1] < 0.9*this->gridGeometry().bBoxMax()[1]) { values[Indices::conti0EqIdx + FluidSystem::CH4Idx] = 0.0 values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; } return values; } Looking forward to your help. Best Regards, Mohammad Hodroj <injection2pproblem.hh>_______________________________________________ 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