Hello Bruno,

Thank you for your reply!

i) I checked this page. I am a little confused. As soon as 
signal.post_refinement.connect() is called, I assume set_boundary_ids() is 
always attached to the Triangulation object, and it will always refresh the 
boundary IDs when a refinement is done. Right?
Are you saying we need to call tria.signal.post_refinement.connect() every 
time before we call execute_mesh_refinement()? seems to be weird...

iii) I think it's ok. But should it be more efficient if we identify which 
cells are moved, and send a modified locally_owned_vertices vector? I don't 
know the implementation, so I don't know if that will change the efficiency.

Best,
Yiyang


On Thursday, October 19, 2017 at 10:55:25 AM UTC-5, Bruno Turcksin wrote:
>
> Hi,
>
> On Wednesday, October 18, 2017 at 4:42:03 PM UTC-4, Yiyang Zhang wrote:
>>
>> i) the signal.post_refinement_connect() need to be set only when the grid 
>> is generated initially, then throughout the problem (even if we have AMR in 
>> the code), we don't need to set it again. Right? 
>>
> No you still need it when you do refinement see here 
> <http://dealii.org/8.5.0/doxygen/deal.II/classparallel_1_1distributed_1_1Triangulation.html>.
>  
> The problem is that cells can be moved to a processor where you the 
> boundary id was not set. If the boundary ids never change in your problem, 
> you can set them everywhere at the beginning and then you don't need to do 
> anything special when you refine. By everywhere, I mean not only cells that 
> are not owned locally but also the cells that are not active. 
>

>> ii) If I set manifold description for the mesh, do I need to set a 
>> similar signal.post_refinement_connect() to refresh the manifold 
>> description?
>>
>> I am not sure but I would think so.
>  
>
>> iii) the communicate_locally_moved_cells() is implemented in 
>> sync_moved_cells() function, is this implementation correct? I don't know 
>> how to modify the locally_owned_vertices vector (for example, the 
>> ith-component in this vector corresponds to which vertice), so I just plug 
>> all the locally_owned_vertices in.
>>
> I think it's ok. Does it look right? 
>
>>
>> iv) Is there anything missing? I am using Trilinos, do I need to make 
>> further modifications for this code?
>>
>> Trilinos is used for the matrices, vectors, and the solver. The 
> generation of the mesh is totally independent of these objects. You could 
> use the same code with petsc.
>
> v) A further question, according to parallel::distributed::Triangulation< 
>> dim, spacedim > Class Template Reference, the set_boundary_ids() is set to 
>> const. I am wondering why we can add the const-qualifier, since setting 
>> boundary indicator is changing tria (is it? which is a member of the class).
>>
> You are not changing the Triangulation but the cells that the 
> Triangulation does not own but knows how to manipulate.
>
> Best,
>
> Bruno
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to