Hi:
I am new to Deal.ii and reading through the examples to learn more. But I 
have a question, that I did not find a suitable answer in the example 
problems. 

I am trying to solve a transient heat conduction problem over a domain due 
to laser heating in an additive manufacturing process. At each time step, I 
want to refine the mesh at the laser spot and then coarsen the end of the 
time step and then in the next time step laser spot moves and I can again 
refine the mesh where the laser is then. I know the position of the laser 
at all times.

Something like this:

Triangulation<3> triangulation;
GridGenerator::subdivided_hyper_rectangle(triangulation, repetitions, left, 
right, true);

// Refine the mesh based on some geometric criteria, like material 
interfaces, near edges, etc.

Loop over time step starts

// Refine at the laser spot

// do calculations. 

// coarsen to get back to the state where the mesh was at the beginning of 
the time step. 

Loop ends

I tried two different ways. 

1. At the end of the time step, call set_coarsen_flag on those cells that 
were marked with set_refine_flag at the beginning of the step.  But, cells 
that were refined due to smoothing are left refined which is not desirable.
2. Add a pre_refinement signal and then save the save_refine_flags during 
refinement and then load_coarsen_flags that vector<bool> from the 
save_refine_flags call. But here I am getting assert failure on mismatched 
size of that vector and the active number of cells whining calling 
execute_coarsening_and_refinement to do the coarsening. 

I also thought of using the persistenttrainregulation class, but I am not 
sure if that covers my use-case. 

I may be able to write some geometric criteria to figure out which cells 
need coarsening. But I am hoping there is a faster method to do this 
because there must be some way to know which cells got refined and by how 
much and just coarsen them again. 

Thank you very much.
-Kaushik 


 

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/80992164-7465-48f4-8344-ee80dcd7d4d0n%40googlegroups.com.

Reply via email to