[deal.II] Mechanisms for deleting cells/edges/vertices in some region

2022-09-26 Thread Lucas Myers
Hi folks,

I'm trying to construct a rectangular grid with features at arbitrary 
locations. The most straightforward way of doing this that I can think of 
is to generate a rectangular hypercube, delete the cells/edges/vertices 
around feature locations, and then attach other triangulations (e.g. a 
hyper_cube_with_cylindrical_hole) at the vacant locations. 

Is there a simple-ish utility for removing parts of the domain in this way? 
And does the process differ for a distributed triangulation? I've been 
perusing the documentation for Triangulation, GridTools, and GridGenerator 
and haven't been able to find anything.

Thanks much,
Lucas

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/8eaf47e1-c2e2-4d48-b9c8-e26b67fde75en%40googlegroups.com.


Re: [deal.II] Error in complex GMRES

2022-09-26 Thread Wolfgang Bangerth

On 9/26/22 09:22, 'yy.wayne' via deal.II User Group wrote:
I'm trying to apply a Krylov solver for complex-valued problem. Basiclly 
I have modified step-16 into a complex-valued problem (do not seperate 
real and imaginary parts) and solve with direct solver successfully. 
However it failed on GMRES solver. Does deal.II built-in GMRES solver 
only supprts double type?


Yes. You probably want to take a look at step-58 as well, along with the 
discussion in the results section there.


Best
 W.

--

Wolfgang Bangerth  email: bange...@colostate.edu
   www: http://www.math.colostate.edu/~bangerth/

--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/4ae8f32a-57ea-52a1-6e6a-6fd2415ee750%40colostate.edu.


Re: [deal.II] C++ language in step16

2022-09-26 Thread 'yy.wayne' via deal.II User Group
Thank you Daniel.


在2022年9月26日星期一 UTC+8 20:42:54 写道:

> cell_worker and copier are lambda functions. You can think of them as 
> in-place structs with a call operator (operator()) with the specified 
> signature. We define a new cell_worker object because the place we are 
> passing it into expects the object to have a call operator that does what 
> this->cell_worker implements.
>
> Best,
> Daniel
>
> On Sun, Sep 25, 2022 at 11:02 PM 'yy.wayne' via deal.II User Group <
> dea...@googlegroups.com> wrote:
>
>> In step16 function assemble_system() and assemble_multigrid(), there are 
>> 2 variables/functions defined as:
>> auto cell_worker =   
>> [&](const typename DoFHandler::active_cell_iterator , 
>> ScratchData & scratch_data, 
>> CopyData & copy_data) 
>>{ this->cell_worker(cell, scratch_data, copy_data); }; 
>> auto copier = 
>> [&](const CopyData ) 
>>{ this->constraints.distribute_local_to_global(cd.cell_matrix,
>>   
>>  cd.cell_rhs, 
>>   
>>  cd.local_dof_indices, 
>>   
>>  system_matrix, system_rhs); };
>> I'm not expert in C++ and these codes seem confusing to me. Are 
>> *cell_worker* and *copier* defined here variables or functions? And why 
>> we define a new cell_worker here (is it because we cannot directly pass 
>> this->cell_worker to MeshWorker::mesh_loop) ? Sorry it might be silly. 
>> Should I know the terminology for this "technique" I can google myself.
>> Thank you.
>>
>> -- 
>> 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+un...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/dealii/c284ce35-13ec-4afd-8ef3-5fdde8fd68can%40googlegroups.com
>>  
>> 
>> .
>>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/360f2ab1-1faa-4386-908e-dd37fbfee07bn%40googlegroups.com.


Re: [deal.II] C++ language in step16

2022-09-26 Thread Daniel Arndt
cell_worker and copier are lambda functions. You can think of them as
in-place structs with a call operator (operator()) with the specified
signature. We define a new cell_worker object because the place we are
passing it into expects the object to have a call operator that does what
this->cell_worker implements.

Best,
Daniel

On Sun, Sep 25, 2022 at 11:02 PM 'yy.wayne' via deal.II User Group <
dealii@googlegroups.com> wrote:

> In step16 function assemble_system() and assemble_multigrid(), there are 2
> variables/functions defined as:
> auto cell_worker =
> [&](const typename DoFHandler::active_cell_iterator ,
> ScratchData & scratch_data,
> CopyData & copy_data)
>{ this->cell_worker(cell, scratch_data, copy_data); };
> auto copier =
> [&](const CopyData )
>{ this->constraints.distribute_local_to_global(cd.cell_matrix,
>
>  cd.cell_rhs,
>
>  cd.local_dof_indices,
>
>  system_matrix, system_rhs); };
> I'm not expert in C++ and these codes seem confusing to me. Are
> *cell_worker* and *copier* defined here variables or functions? And why
> we define a new cell_worker here (is it because we cannot directly pass
> this->cell_worker to MeshWorker::mesh_loop) ? Sorry it might be silly.
> Should I know the terminology for this "technique" I can google myself.
> Thank you.
>
> --
> 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.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/dealii/c284ce35-13ec-4afd-8ef3-5fdde8fd68can%40googlegroups.com
> 
> .
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/CAOYDWbJ191WrR2nriTJj2XQpi_0SmW%3DOh%3D_VdoOTg8GNHnDNHg%40mail.gmail.com.