Thank you. I do not find SolveAgain in the documentation, so I am unsure
 of the syntax. I am tempted at first to think the syntax is identical 
to Solve, but SolveAgain implies that there is some continuity between 
the previous solution and the new one--i.e., that GetDP knows about it 
somehow.<br>
<br>In my application GetDP runs the the n'th solution and terminates. A
 different program reads the solution, performs some operations, and 
determines a new charge density distribution. GetDP is then restarted to
 perform the (n+1)st solution. It seems there should be much opportunity
 to save time here, e.g., by reusing the preconditioner, the stiffness 
matrix, maybe even the previous solution as starting guess for the new 
iteration, but the (n+1)st instance of GetDP needs to import all these 
things from output made by the n'th instance.<br>
<br>If GetDP can do this, I am willing to experiment, but not sure how 
yet. Besides the syntax for SaveAgain, I will need to read about the 
Print command. Then what is the corresponding command used to import 
that which was exported by Print?<br>
<br>John<br><br><div class="gmail_quote">On Fri, Jan 14, 2011 at 9:49 AM, John_V <span dir="ltr"><<a href="mailto:jvillar.john@gmail.com">jvillar.john@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Thank you. I do not find SolveAgain in the documentation, so I am unsure of the syntax. I am tempted at first to think the syntax is identical to Solve, but SolveAgain implies that there is some continuity between the previous solution and the new one--i.e., that GetDP knows about it somehow.<br>

<br>In my application GetDP runs the the n'th solution and terminates. A different program reads the solution, performs some operations, and determines a new charge density distribution. GetDP is then restarted to perform the (n+1)st solution. It seems there should be much opportunity to save time here, e.g., by reusing the preconditioner, the stiffness matrix, maybe even the previous solution as starting guess for the new iteration, but the (n+1)st instance of GetDP needs to import all these things from output made by the n'th instance.<br>

<br>If GetDP can do this, I am willing to experiment, but not sure how yet. Besides the syntax for SaveAgain, I will need to read about the Print command. Then what is the corresponding command used to import that which was exported by Print?<br>
<font color="#888888">
<br>John</font><div><div></div><div class="h5"><br><br><br><div class="gmail_quote">On Fri, Jan 14, 2011 at 7:58 AM, Christophe Geuzaine <span dir="ltr"><<a href="mailto:cgeuzaine@ulg.ac.be" target="_blank">cgeuzaine@ulg.ac.be</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div>On 13/01/11 15:20, John_V wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I am using GetDP to repeatedly solve electrostatic problems on the same<br>
mesh. The only thing that changes from one solution to the next is the<br>
distribution of charges. That is, GetDP is solving K.V = S for V, where<br>
the stiffness matrix K is every time the same and only S changes. In<br>
this circumstance it is not in principle necessary to build K from the<br>
mesh every time. It could just be built the first time and then reused.<br>
<br>
I have two questions:<br>
<br>
1. Does GetDP presently implement any mechanism to do this? For example,<br>
is there a way to export the matrix to a file after it is computed, and<br>
then import it for use the next time GetDP is used?<br>
<br>
</blockquote>
<br></div>
Yes (see the Print command), but I don't think it would help, as currently the matrix and the right hand side are assembled during the same process.<div><br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
2. Is this likely to save any (or much) time? Each resolution is taking<br>
about 15 to 50 minutes on my computer, but I don't know what fraction of<br>
this is spent building the K matrix and what fraction is actually<br>
solving the system of equations. I know from watching the output that<br>
all of the [0% - 10% - ... 90% - Done] convergence messages appear in<br>
the last minute or so. If those coincide with the solution of the<br>
equations then it may be that a significant amount of the time is spent<br>
computing K, in which case this could lead to a big time savings.<br>
<br>
</blockquote>
<br></div>
For low order interpolation (1st order), solving the linear system should take much longer than assembling the matrix (unless there are some really complex expressions to be evaluated to build the operator).<br>
<br>
To keep the preconditionner from one solution to the other, you can use "SolveAgain" instead of "Solve" in the operations.<br>
<br>
If this does not help, could you send a small example?<br>
<br>
Thanks,<br>
<br>
Christophe<br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
John<br>
<br>
<br>
_______________________________________________<br>
getdp mailing list<br>
<a href="mailto:getdp@geuz.org" target="_blank">getdp@geuz.org</a><br>
<a href="http://www.geuz.org/mailman/listinfo/getdp" target="_blank">http://www.geuz.org/mailman/listinfo/getdp</a><br>
<br>
</blockquote>
<br>
<br>
-- <br>
Prof. Christophe Geuzaine<br>
University of Liege, Electrical Engineering and Computer Science<br>
<a href="http://www.montefiore.ulg.ac.be/%7Egeuzaine" target="_blank">http://www.montefiore.ulg.ac.be/~geuzaine</a><br>
</blockquote></div><br>
</div></div></blockquote></div><br>