Dear all,
I have a few questions on using the HelmSolve function together with non-zero varCoeffMap and varFactorsMap input arguments.
Consider the following equation on a given domain:
div [ eps(x) * grad(U) ] + lambda(x) * U = f(x)
Is it correct to say that varCoeffMap can be set up to provide eps(x), while varFactorsMap can be set up to provide lambda(x) for the HelmSolve function? If so, how does the constant factor [eFactorsLamdba] get treated if varFactorsMap is also defined?
With these assumptions, I have moved forward to set up an example. The Unsteady Diffusion equation system from the ADR solver was used as the basis. The modified source files are attached.
The example is not meant to represent a particular physical problem, rather it just check functionality.
A varCoeffMap [StdRegins :: eVarCoeffLaplacian] and varFactorsMap [StdRegions :: eFactorDiffCoefff] were set up based on the total number of quadrature points and are simply filled with random small values at every time step.
A 2D problem was set up in a unit square domain (the xml file is also attached).
Time marching the problem has revealed that the RAM consumption steadily grows without limits if the varFactorsMap is recomputed at every timestep, regardless of the total RAM, if the total number of time steps if sufficiently high. I am running the code under Ubuntu, and all source files were updated from the repository on March 2nd, prior to any modifications.
Is this due to an improper use of varFactorsMap within the example, or is it a memory management problem? Am I missing source files which should be updated to provide this intended functionality? It must be noted that updating varCoeffMap at every step does not generate the same memory problem.
Any information or advice would be much appreciated, and apologies for the lengthy email :)
Best regards,
Oliviu