Yes, this is a good idea and I saw the create_submesh function that 
would do the job. But how would be the load balancing on the new 
submesh? Each rank has the same amount of dofs right? Or if the new mesh 
is for example contained in the subdomain of rank 0 then just rank 0 
will handle the submesh?

Now I'm working with full size vectors, it doesn't scale very well and 
more memory is needed. If one day this is not enough anymore I will 
surely consider the two mesh strategy.

On 02/10/2016 03:04 PM, Derek Gaston wrote:
> Are the fine and coarse meshes actually part of the same Mesh and 
> therefore part of the same System? Why not break up the problems into 
> two separate Meshes and two separate Systems? Then the indexing will 
> be straight forward.
>
> Derek
> On Wed, Feb 10, 2016 at 7:34 AM Giacomo Rosilho de Souza 
> <giacomo.rosilhodeso...@epfl.ch 
> <mailto:giacomo.rosilhodeso...@epfl.ch>> wrote:
>
>     Hello, thanks for the tip :), in fact using subvectors and then insert
>     is really faster. But its working only when the code runs with one
>     processor, when two or more are used I've got the error
>
>     [0]PETSC ERROR: Invalid argument
>     [0]PETSC ERROR: Int value must be same on all processes, argument # 3
>
>     on the lines
>
>     rhs->create_subvector(*f0, coarse_dofs);
>     rhs->create_subvector(*h0, fine_dofs);
>
>     In my case each rank has its own coarse_dofs and fine_dofs arrays
>     which
>     also have diffierent sizes, is that the problem? There's a workaround?
>
>     Giacomo
>
>     On 02/08/2016 05:39 PM, Roy Stogner wrote:
>     >
>     > On Mon, 8 Feb 2016, John Peterson wrote:
>     >
>     >> Also, remember that setting values in NumericVectors is already
>     a fairly
>     >> indirect operation.  For example, if you are using PETSc, the
>     values are
>     >> cached and communicated only when the vector is closed.
>     >
>     > We have seen speedup in some applications by using the vectorized
>     > NumericVector::insert() methods instead of NumericVector::set(). A
>     > few fewer virtual function calls made a small but noticeable
>     > difference.
>     > ---
>     > Roy
>
>
>     
> ------------------------------------------------------------------------------
>     Site24x7 APM Insight: Get Deep Visibility into Application Performance
>     APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
>     Monitor end-to-end web transactions and take corrective actions now
>     Troubleshoot faster and improve end-user experience. Signup Now!
>     http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>     _______________________________________________
>     Libmesh-users mailing list
>     Libmesh-users@lists.sourceforge.net
>     <mailto:Libmesh-users@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/libmesh-users
>

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to