<div>&quot;Its normally better to change the values in place&quot;<br>&nbsp;</div>
<div>So you mean I should use VecSetValue/s instead?</div>
<div>&nbsp;</div>
<div>Thank you.</div>
<div>&nbsp;</div>
<div>Regards.<br>&nbsp;</div>
<div><span class="gmail_quote">On 12/4/06, <b class="gmail_sendername">Matthew Knepley</b> &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">On 12/4/06, Ben Tay &lt;<a href="mailto:zonexo@gmail.com">zonexo@gmail.com</a>&gt; wrote:<br>&gt;<br>&gt; Hi,
<br>&gt;<br>&gt; regarding qn 4 ie&nbsp;&nbsp;the requirement of<br>&gt; VecAssemblyBegin,VecAssemblyEnd, I used VecPlaceArray,<br>&gt; VecResetArray to change the values. I did not use Assembly after the 1st<br>&gt; time step and it works ok. So that is fine too, right?
<br><br>Its alright, but probably not optimal. It could result in slower code<br>due to all the<br>allocation. Its normally better to change the values in place.<br><br>&nbsp;&nbsp;Matt<br><br>&gt; Thank you!<br>&gt;<br>&gt; On 12/4/06, Satish Balay &lt;
<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>&gt; wrote:<br>&gt; &gt; On Sun, 3 Dec 2006, Matthew Knepley wrote:<br>&gt; &gt;<br>&gt; &gt; &gt; &gt; 1. Are petscscaler the same as real nos.? I am writing in double
<br>&gt; precision<br>&gt; &gt; &gt; &gt; or real(8). So are these 2 interchangeable? (same as petscint and<br>&gt; integer).<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Yes.<br>&gt; &gt;<br>&gt; &gt; You can check these defines in include/finclude/petscdef.h
<br>&gt; &gt;<br>&gt; &gt; PetscInt -&gt; integer*4<br>&gt; &gt; PetscScalar -&gt; real*8<br>&gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; 2. while linking in compaq visual fortran, I get the warning message<br>&gt; about
<br>&gt; &gt; &gt; &gt; conflict library with LIBCMT. Is it important or can I just ignore it?<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; This is determined by your configure. Satish will know better how to<br>&gt; control<br>&gt; &gt; &gt; it.
<br>&gt; &gt;<br>&gt; &gt; There are some warnings because of the way compqaq f90 tries to<br>&gt; &gt; workarround some bugs in Visual Studio 6 version of the libraries. It<br>&gt; &gt; will be fine as long as all code [PETSc &amp; application] is compiled
<br>&gt; &gt; with the same set of compiler options,<br>&gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; 3. I am writing in f90 free form format. When I modify from fixed f77<br>&gt; format<br>&gt; &gt; &gt; &gt; to f90, it gives me a lot of error, which seems to be the include file
<br>&gt; &gt; &gt; &gt; error. So, is it possible to write in f90 format?<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Depending on which compiler you use, you might have to give a flag. For<br>&gt; g95<br>&gt; &gt; &gt; it is -ffree-form.
<br>&gt; &gt;<br>&gt; &gt; We'll have to see the error messgaes to determine what the problem is<br>&gt; &gt; - however - if you check the PETSc fortran examples - they comply with<br>&gt; &gt; both fixed and free from syntax.
<br>&gt; &gt;<br>&gt; &gt; &gt; &gt; 4. I am writing a Navier stokes solver and I'm using PETSC to solve<br>&gt; the<br>&gt; &gt; &gt; &gt; poisson eqn. If only the RHS changes with each time step, do I need to<br>&gt; call
<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; VecCreateSeq<br>&gt; &gt; &gt; &gt; &lt;insert values in RHS b&gt;<br>&gt; &gt; &gt; &gt; VecAssemblyBegin<br>&gt; &gt; &gt; &gt; VecAssemblyEnd<br>&gt; &gt; &gt; &gt; VecDestroy
<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; at each time step? I don't think I can (or I should) change values of<br>&gt; b<br>&gt; &gt; &gt; &gt; after VecAssemblyBegin,VecAssemblyEnd, or can I?<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; You can just change the values. Call AssemblyBegin/End() after each
<br>&gt; group<br>&gt; &gt; &gt; of changes.<br>&gt; &gt;<br>&gt; &gt; Another note: - If you change values with VecSetValues() - you'll need<br>&gt; &gt; to call VecAssemblyBegin,VecAssemblyEnd. However if you<br>&gt; do
<br>&gt; &gt; VecGetArray() [or VecGetArrayF0()] - and change values - then you<br>&gt; &gt; don't need the calls to VecAssembly...<br>&gt; &gt;<br>&gt; &gt; Satish<br>&gt; &gt;<br>&gt; &gt;<br>&gt;<br>&gt;<br><br><br>--<br>
&quot;Failure has a thousand explanations. Success doesn't need one&quot; -- Sir<br>Alec Guiness<br><br></blockquote></div><br>