Thank you all for the suggestions!

When I did

system.solution->localize_to_one(soln);

was giving me a PETSC error, however when using

system.solution->localize(soln);

solved the problem.

Best

Ernesto

Em 2015-04-16 11:16, Derek Gaston escreveu:
> Remember: localize_to_one() only pulls the vector down to one
> processor (processor 0 by default). If you need a full copy of the
> vector on every processor then you should use localize().
>
> Derek
>
> On Thu, Apr 16, 2015 at 11:25 AM John Peterson <[email protected]
> [6]> wrote:
>
>> On Thu, Apr 16, 2015 at 8:52 AM, ernestol <[email protected] [1]>
>> wrote:
>>
>> > Em 2015-04-16 09:18, John Peterson escreveu:
>> >
>> >> On Wed, Apr 15, 2015 at 7:55 PM, ernestol <[email protected] [2]
>> [1]>
>> >>
>> >> wrote:
>> >>
>> >>  Hi all,
>> >>>
>> >>> I wonder if there is a simple way to get the global solution
>> when
>> >>> running the code in parallel?
>> >>>
>> >>> I tried:
>> >>>
>> >>>    const System& system = es.get_system("System");
>> >>>    const unsigned short int variable_num =
>> >>> system.variable_number("variable");
>> >>>    const unsigned int dim = mesh.mesh_dimension();
>> >>>    std::vector<Number> sys_soln;
>> >>>    system.update_global_solution (sys_soln, 0);
>> >>>
>> >>> And also created this function
>> >>>
>> >>> void Solution(const EquationSystems& es,const MeshBase&
>> mesh,string
>> >>> s){
>> >>>    std::vector<Number> soln;
>> >>>    std::vector<std::string> names;
>> >>>    es.build_variable_names(names);
>> >>>    es.build_solution_vector(soln);
>> >>>    ofstream myfile;
>> >>>    myfile.open(s);
>> >>>    for(unsigned int i=0;i<mesh.n_nodes();i++){
>> >>>      const unsigned int n_vars = names.size();
>> >>>      for(unsigned int c=0;c<n_vars;c++){
>> >>>        myfile << scientific << " " << soln[i*n_vars + c];
>> >>>      }
>> >>>      myfile << endl;
>> >>>    }
>> >>>    myfile.close();
>> >>> }
>> >>>
>> >>> However both only work in serial. The first in parallel gives
>> me
>> >>> only 0
>> >>> so sys_soln and the second gives me an error with PESTC when in
>> >>> parallel.
>> >>>
>> >>
>> >> Out of curiosity, what does calling
>> >>
>> >> system.solution->print_global();
>> >>
>> >> do?  Im a bit skeptical about your loop over nodes and vars...
>> it
>> >> might work for this one case, but be aware that it probably wont
>> work
>> >> if there are element and/or scalar dofs in the solution vector.
>> >>
>> >
>> > It prints the solution without a problem both in serial and
>> parallel.
>> > However what I am needing is a vector with the solution, I am
>> just
>> > printing to check if I managed to get it. I will need to have the
>> values at
>> > each node so I can couple with a discrete part of the model. All
>> the ways I
>> > had tried worked in serial but not in parallel, any ideas?
>> >
>>
>> OK, sorry, misunderstood what you were after.
>>
>> In that case, the solution posted by Vasileios Vavourakis should
>> work.  Im
>> not sure if localize_to_one() calls close() on the vector
>> beforehand, so
>> why dont you try doing that as well?
>>
>> --
>> John
>>
> 
> ------------------------------------------------------------------------------
>> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
>> Develop your own process in accordance with the BPMN 2 standard
>> Learn Process modeling best practices with Bonita BPM through live
>> exercises
>> http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
>> [3] event?utm_
>>
> 
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
>> _______________________________________________
>> Libmesh-users mailing list
>> [email protected] [4]
>> https://lists.sourceforge.net/lists/listinfo/libmesh-users [5]
>
>
> Links:
> ------
> [1] mailto:[email protected]
> [2] mailto:[email protected]
> [3] http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
> [4] mailto:[email protected]
> [5] https://lists.sourceforge.net/lists/listinfo/libmesh-users
> [6] mailto:[email protected]


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to