Timo, Apparently it is "SET_TYPE_PROP(YourTypeTag, LinearSolver, UMFPackBackend<TypeTag>);" not "SET_PROP(YourTypeTag, LinearSolver, UMFPackBackend<TypeTag>);" that worked for me to change the resolution method.
Thanks! -----Mensaje original----- De: Timo Koch [mailto:timo.k...@iws.uni-stuttgart.de] Enviado el: viernes, 24 de noviembre de 2017 03:12 a. m. Para: DuMuX User Forum; Ed Scott Wilson Garcia Asunto: Re: [DuMuX] Changing resolution method > Am 23.11.2017 um 23:34 schrieb Ed Scott Wilson Garcia <edsc...@imp.mx>: > > Hi all, > > Currently we have a problema derived from the 2pnc model which Works quite > well, but we have a couple issues we would like to examine further. > > First, we are using a modified BrooksCorey material law which depends > spatially and timewise on the salt concentration. We implemented the problem > by defining a matrix of spatialParams objects ---one for each cell---, Hi Edscott, the spatial parameter class has getter interface functions for the material params per element already so it is a "global" class that you should only have once. Additionally, correct me if I'm wrong, you seem to have a single material law for all cells so it would be a waste of resources to have that for all cells. The common approach would be to have an std::vector in the spatial params class that stores the permeabilities and porosities (if they are solution dependent in your case). For the material law you can change the volume variables so that they pass the salt concentration to the material law directly. > and on each time step we update the parameters according the current > solution. Would this be the proper Dumux approach? It depends on what you are trying to do. In your method the parameter dependency on the solution is decoupled from the rest of the system in the sense that you use solution values from the old time step. If you want to solve a fully coupled system you need to compute with the current Newton steps solution. You can do that, as mentioned above, by calling the material law from the volume variables but additionally pass the salt concentration. > > Second, we would like to change the resolution method from iterative to > direct (our problem is small), in particular UMFpack. Any pointers on how to > set about doing this? You need to install UMFPack which is e.g. part of the suitesparse package on debian systems. Make sure dumux found it by checking the ouput of CMake when running dunecontrol (A line like: Optional packages found: * UMFPack. If not delete the build folders and run dunecontrol again. If you installed UMFPack or it's already installed on your system simply set the according linear solver property by adding the lines SET_PROP(YourTypeTag, LinearSolver, UMFPackBackend<TypeTag>); to your properties in the problem header. Best wishes Timo > > Many thanks in advance for any ideas or suggestions. > > Regards, > > Edscott > _______________________________________________ > Dumux mailing list > 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