Re: [deal.II] Re: Matrix-based p-multigrid preconditioning

2022-10-08 Thread 'yy.wayne' via deal.II User Group
I find the problem, that FEValuesBase is not an accessor of Subscriptor in 
9.3.0, while is in 9.4.0. So it's deal.II version making this error.

在2022年10月8日星期六 UTC+8 21:40:01 写道:

> I modify step-75 into a matrix-based, basiclly combining the hpbox repo in 
> github. I came across a error while building:
>
> /home/ubuntu/Desktop/my_projects/step-75-matrixbased/source/step-75-mb.cc:710:
>  
> error: ‘class dealii::hp::FEValues<2, 2>’ has no member named ‘unsubscribe’
> In file included from 
> /home/ubuntu/deal.II/installed/include/deal.II/distributed/tria.h:22,
>  from 
> /home/ubuntu/deal.II/installed/include/deal.II/distributed/grid_refinement.h:24,
>  from 
> /home/ubuntu/Desktop/my_projects/step-75-matrixbased/source/step-75-mb.cc:34:
> /home/ubuntu/deal.II/installed/include/deal.II/base/smartpointer.h: In 
> instantiation of ‘dealii::SmartPointer::~SmartPointer() [with T = 
> dealii::hp::FEValues<2, 2>; P = void]’:
> /home/ubuntu/Desktop/my_projects/step-75-matrixbased/source/step-75-mb.cc:220:9:
>  
>   required from ‘void std::default_delete<_Tp>::operator()(_Tp*) const 
> [with _Tp = Step75::MatrixBasedOperator<2, double>]’
> /usr/include/c++/9/bits/unique_ptr.h:292:17:   required from 
> ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = 
> Step75::MatrixBasedOperator<2, double>; _Dp = 
> std::default_delete >]’
> /home/ubuntu/Desktop/my_projects/step-75-matrixbased/source/step-75-mb.cc:710:9:
>  
>   required from here
> /home/ubuntu/deal.II/installed/include/deal.II/base/smartpointer.h:277:8: 
> error: ‘class dealii::hp::FEValues<2, 2>’ has no member named ‘unsubscribe’
>   277 | t->unsubscribe(_to_object_is_alive, id);
>   | ~~~^~~
>
> I cannot figure out why this is wrong since it's same as hpbox. Could this 
> be due to different version (mine is 9.3.0)?
> 在2022年10月7日星期五 UTC+8 13:45:41 写道:
>
>> Yes.
>>
>> Peter
>> On 07.10.22 07:44, 'yy.wayne' via deal.II User Group wrote:
>>
>> I see. So that's why we create a new dof_handlers in solve_with_gmg() 
>> function instead of continue using dof_handler as other tutorials. If I 
>> want to build mg_matrices and their SparsityPattern, they should based on 
>> dof_handlers as well, is it correct? 
>>
>> Thank you
>>
>> 在2022年10月7日星期五 UTC+8 13:35:16 写道:
>>
>>> Hej, 
>>>
>>> > One thing I'm confused is that why we use 
>>> "make_hanging_node_constraints" and "interpolate_boundary_values" for a new 
>>> constraints in solve_with_gmg in step-75, instead of the 
>>> boundary_constraints as done in previous MG tutorials.
>>>
>>> Your observation is correct. It is related to the fact that p-multigrid 
>>> in deal.II uses the new global-coarsening infrastructure (it was introduced 
>>> in release 7.3). In the other tutorials, the local-smoothing infrastructure 
>>> is used. 
>>>
>>> In a nutshell, the difference is that local smoothing is working on 
>>> refinement levels, while global coarsening works on the complete active 
>>> levels of multiple Triangulation/DoFHandler objects. In the case of 
>>> h-multigrid, one works on multiple meshes, which are created by globally 
>>> coarsening the finest mesh (this is the reason for the name "global 
>>> coarsening"); in the case of p-multigrid, one would work with the same 
>>> Triangulation but would distribute different FEs on different DoFHandler 
>>> objects. Since you work on the active level, you can simple use the 
>>> functions you would use if you don't work on refinement levels.
>>>
>>> For more details see our publication: https://arxiv.org/abs/2203.12292
>>>
>>> Hope this help,
>>> Peter
>>>
>>> On Wednesday, 5 October 2022 at 14:17:03 UTC+2 yy.wayne wrote:
>>>
 Hello sir, 

 One thing I'm confused is that why we use 
 "make_hanging_node_constraints" and "interpolate_boundary_values" for a 
 new 
 constraints in solve_with_gmg in step-75, instead of the 
 boundary_constraints as done in previous MG tutorials.

 在2022年10月4日星期二 UTC+8 00:11:49 写道:

> Hi!
>
> The "Possibilities for extensions" section of step-75 gives you a few 
> hints on how to achieve p-multigrid preconditioning with matrix-based 
> methods:
>
> https://www.dealii.org/current/doxygen/deal.II/step_75.html#Solvewithmatrixbasedmethods
>
> If you look for an example implementation, the "hpbox" tool 
> demonstrates both matrix-based and matrix-free implementations of the 
> p-multigrid method.
> https://zenodo.org/record/6425947
> https://github.com/marcfehling/hpbox/
>
> Best,
> Marc
>
> On Monday, October 3, 2022 at 3:39:51 AM UTC-6 yy.wayne wrote:
>
>> Hello, 
>>
>> I plan to test the converge of polynomial multigrid preconditioning 
>> on a problem, with matrix-based framework. However, step-75 is a bit 
>> confusing since I cannot clearly separate classses contributed by 
>> matrix-free and p-multigrid. 
>>
>> Specifically, in 

Re: [deal.II] Re: Matrix-based p-multigrid preconditioning

2022-10-08 Thread 'yy.wayne' via deal.II User Group
I modify step-75 into a matrix-based, basiclly combining the hpbox repo in 
github. I came across a error while building:

/home/ubuntu/Desktop/my_projects/step-75-matrixbased/source/step-75-mb.cc:710: 
error: ‘class dealii::hp::FEValues<2, 2>’ has no member named ‘unsubscribe’
In file included from 
/home/ubuntu/deal.II/installed/include/deal.II/distributed/tria.h:22,
 from 
/home/ubuntu/deal.II/installed/include/deal.II/distributed/grid_refinement.h:24,
 from 
/home/ubuntu/Desktop/my_projects/step-75-matrixbased/source/step-75-mb.cc:34:
/home/ubuntu/deal.II/installed/include/deal.II/base/smartpointer.h: In 
instantiation of ‘dealii::SmartPointer::~SmartPointer() [with T = 
dealii::hp::FEValues<2, 2>; P = void]’:
/home/ubuntu/Desktop/my_projects/step-75-matrixbased/source/step-75-mb.cc:220:9:
 
  required from ‘void std::default_delete<_Tp>::operator()(_Tp*) const 
[with _Tp = Step75::MatrixBasedOperator<2, double>]’
/usr/include/c++/9/bits/unique_ptr.h:292:17:   required from 
‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = 
Step75::MatrixBasedOperator<2, double>; _Dp = 
std::default_delete >]’
/home/ubuntu/Desktop/my_projects/step-75-matrixbased/source/step-75-mb.cc:710:9:
 
  required from here
/home/ubuntu/deal.II/installed/include/deal.II/base/smartpointer.h:277:8: 
error: ‘class dealii::hp::FEValues<2, 2>’ has no member named ‘unsubscribe’
  277 | t->unsubscribe(_to_object_is_alive, id);
  | ~~~^~~

I cannot figure out why this is wrong since it's same as hpbox. Could this 
be due to different version (mine is 9.3.0)?
在2022年10月7日星期五 UTC+8 13:45:41 写道:

> Yes.
>
> Peter
> On 07.10.22 07:44, 'yy.wayne' via deal.II User Group wrote:
>
> I see. So that's why we create a new dof_handlers in solve_with_gmg() 
> function instead of continue using dof_handler as other tutorials. If I 
> want to build mg_matrices and their SparsityPattern, they should based on 
> dof_handlers as well, is it correct? 
>
> Thank you
>
> 在2022年10月7日星期五 UTC+8 13:35:16 写道:
>
>> Hej, 
>>
>> > One thing I'm confused is that why we use 
>> "make_hanging_node_constraints" and "interpolate_boundary_values" for a new 
>> constraints in solve_with_gmg in step-75, instead of the 
>> boundary_constraints as done in previous MG tutorials.
>>
>> Your observation is correct. It is related to the fact that p-multigrid 
>> in deal.II uses the new global-coarsening infrastructure (it was introduced 
>> in release 7.3). In the other tutorials, the local-smoothing infrastructure 
>> is used. 
>>
>> In a nutshell, the difference is that local smoothing is working on 
>> refinement levels, while global coarsening works on the complete active 
>> levels of multiple Triangulation/DoFHandler objects. In the case of 
>> h-multigrid, one works on multiple meshes, which are created by globally 
>> coarsening the finest mesh (this is the reason for the name "global 
>> coarsening"); in the case of p-multigrid, one would work with the same 
>> Triangulation but would distribute different FEs on different DoFHandler 
>> objects. Since you work on the active level, you can simple use the 
>> functions you would use if you don't work on refinement levels.
>>
>> For more details see our publication: https://arxiv.org/abs/2203.12292
>>
>> Hope this help,
>> Peter
>>
>> On Wednesday, 5 October 2022 at 14:17:03 UTC+2 yy.wayne wrote:
>>
>>> Hello sir, 
>>>
>>> One thing I'm confused is that why we use 
>>> "make_hanging_node_constraints" and "interpolate_boundary_values" for a new 
>>> constraints in solve_with_gmg in step-75, instead of the 
>>> boundary_constraints as done in previous MG tutorials.
>>>
>>> 在2022年10月4日星期二 UTC+8 00:11:49 写道:
>>>
 Hi!

 The "Possibilities for extensions" section of step-75 gives you a few 
 hints on how to achieve p-multigrid preconditioning with matrix-based 
 methods:

 https://www.dealii.org/current/doxygen/deal.II/step_75.html#Solvewithmatrixbasedmethods

 If you look for an example implementation, the "hpbox" tool 
 demonstrates both matrix-based and matrix-free implementations of the 
 p-multigrid method.
 https://zenodo.org/record/6425947
 https://github.com/marcfehling/hpbox/

 Best,
 Marc

 On Monday, October 3, 2022 at 3:39:51 AM UTC-6 yy.wayne wrote:

> Hello, 
>
> I plan to test the converge of polynomial multigrid preconditioning on 
> a problem, with matrix-based framework. However, step-75 is a bit 
> confusing 
> since I cannot clearly separate classses contributed by matrix-free and 
> p-multigrid. 
>
> Specifically, in step-16 (with MeshWorker) and step-56 (assemble 
> cell_matrix by hand) there are assemble_system() and 
> assemble_multigrid(), 
> while in step-75 there are solve_system() which calls solve_with_gmg and 
> mg_solve. It is due to matrix-free or p-multigrid? By the way, is there a 
> code gallery for 

Re: [deal.II] Re: Matrix-based p-multigrid preconditioning

2022-10-06 Thread Peter Munch

Yes.

Peter

On 07.10.22 07:44, 'yy.wayne' via deal.II User Group wrote:
I see. So that's why we create a new dof_handlers in solve_with_gmg() 
function instead of continue using dof_handler as other tutorials. If 
I want to build mg_matrices and their SparsityPattern, they should 
based on dof_handlers as well, is it correct?


Thank you

在2022年10月7日星期五 UTC+8 13:35:16 写道:

Hej,

> One thing I'm confused is that why we use
"make_hanging_node_constraints" and "interpolate_boundary_values"
for a new constraints in solve_with_gmg in step-75, instead of the
boundary_constraints as done in previous MG tutorials.

Your observation is correct. It is related to the fact that
p-multigrid in deal.II uses the new global-coarsening
infrastructure (it was introduced in release 7.3). In the other
tutorials, the local-smoothing infrastructure is used.

In a nutshell, the difference is that local smoothing is working
on refinement levels, while global coarsening works on the
complete active levels of multiple Triangulation/DoFHandler
objects. In the case of h-multigrid, one works on multiple meshes,
which are created by globally coarsening the finest mesh (this is
the reason for the name "global coarsening"); in the case of
p-multigrid, one would work with the same Triangulation but would
distribute different FEs on different DoFHandler objects. Since
you work on the active level, you can simple use the functions you
would use if you don't work on refinement levels.

For more details see our publication: https://arxiv.org/abs/2203.12292

Hope this help,
Peter

On Wednesday, 5 October 2022 at 14:17:03 UTC+2 yy.wayne wrote:

Hello sir,

One thing I'm confused is that why we use
"make_hanging_node_constraints" and
"interpolate_boundary_values" for a new constraints in
solve_with_gmg in step-75, instead of the boundary_constraints
as done in previous MG tutorials.

在2022年10月4日星期二 UTC+8 00:11:49 写道:

Hi!

The "Possibilities for extensions" section of step-75
gives you a few hints on how to achieve p-multigrid
preconditioning with matrix-based methods:

https://www.dealii.org/current/doxygen/deal.II/step_75.html#Solvewithmatrixbasedmethods

If you look for an example implementation, the "hpbox"
tool demonstrates both matrix-based and matrix-free
implementations of the p-multigrid method.
https://zenodo.org/record/6425947
https://github.com/marcfehling/hpbox/

Best,
Marc

On Monday, October 3, 2022 at 3:39:51 AM UTC-6 yy.wayne wrote:

Hello,

I plan to test the converge of polynomial multigrid
preconditioning on a problem, with matrix-based
framework. However, step-75 is a bit confusing since I
cannot clearly separate classses contributed by
matrix-free and p-multigrid.

Specifically, in step-16 (with MeshWorker) and step-56
(assemble cell_matrix by hand) there are
assemble_system() and assemble_multigrid(), while in
step-75 there are solve_system() which calls
solve_with_gmg and mg_solve. It is due to matrix-free
or p-multigrid? By the way, is there a code gallery
for matrix-based polynomial-multigrid ?

Thanks

--
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/55c95bd6-48b2-4dcf-9e6c-6544b85be53en%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/fa4b497d-7357-0c21-7056-30b0d2a35736%40gmail.com.


[deal.II] Re: Matrix-based p-multigrid preconditioning

2022-10-06 Thread 'yy.wayne' via deal.II User Group
I see. So that's why we create a new dof_handlers in solve_with_gmg() 
function instead of continue using dof_handler as other tutorials. If I 
want to build mg_matrices and their SparsityPattern, they should based on 
dof_handlers as well, is it correct?

Thank you

在2022年10月7日星期五 UTC+8 13:35:16 写道:

> Hej,
>
> > One thing I'm confused is that why we use 
> "make_hanging_node_constraints" and "interpolate_boundary_values" for a new 
> constraints in solve_with_gmg in step-75, instead of the 
> boundary_constraints as done in previous MG tutorials.
>
> Your observation is correct. It is related to the fact that p-multigrid in 
> deal.II uses the new global-coarsening infrastructure (it was introduced in 
> release 7.3). In the other tutorials, the local-smoothing infrastructure is 
> used. 
>
> In a nutshell, the difference is that local smoothing is working on 
> refinement levels, while global coarsening works on the complete active 
> levels of multiple Triangulation/DoFHandler objects. In the case of 
> h-multigrid, one works on multiple meshes, which are created by globally 
> coarsening the finest mesh (this is the reason for the name "global 
> coarsening"); in the case of p-multigrid, one would work with the same 
> Triangulation but would distribute different FEs on different DoFHandler 
> objects. Since you work on the active level, you can simple use the 
> functions you would use if you don't work on refinement levels.
>
> For more details see our publication: https://arxiv.org/abs/2203.12292
>
> Hope this help,
> Peter
>
> On Wednesday, 5 October 2022 at 14:17:03 UTC+2 yy.wayne wrote:
>
>> Hello sir,
>>
>> One thing I'm confused is that why we use "make_hanging_node_constraints" 
>> and "interpolate_boundary_values" for a new constraints in solve_with_gmg 
>> in step-75, instead of the boundary_constraints as done in previous MG 
>> tutorials.
>>
>> 在2022年10月4日星期二 UTC+8 00:11:49 写道:
>>
>>> Hi!
>>>
>>> The "Possibilities for extensions" section of step-75 gives you a few 
>>> hints on how to achieve p-multigrid preconditioning with matrix-based 
>>> methods:
>>>
>>> https://www.dealii.org/current/doxygen/deal.II/step_75.html#Solvewithmatrixbasedmethods
>>>
>>> If you look for an example implementation, the "hpbox" tool demonstrates 
>>> both matrix-based and matrix-free implementations of the p-multigrid method.
>>> https://zenodo.org/record/6425947
>>> https://github.com/marcfehling/hpbox/
>>>
>>> Best,
>>> Marc
>>>
>>> On Monday, October 3, 2022 at 3:39:51 AM UTC-6 yy.wayne wrote:
>>>
 Hello,

 I plan to test the converge of polynomial multigrid preconditioning on 
 a problem, with matrix-based framework. However, step-75 is a bit 
 confusing 
 since I cannot clearly separate classses contributed by matrix-free and 
 p-multigrid. 

 Specifically, in step-16 (with MeshWorker) and step-56 (assemble 
 cell_matrix by hand) there are assemble_system() and assemble_multigrid(), 
 while in step-75 there are solve_system() which calls solve_with_gmg and 
 mg_solve. It is due to matrix-free or p-multigrid? By the way, is there a 
 code gallery for matrix-based polynomial-multigrid ? 

 Thanks

>>>

-- 
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/55c95bd6-48b2-4dcf-9e6c-6544b85be53en%40googlegroups.com.


[deal.II] Re: Matrix-based p-multigrid preconditioning

2022-10-06 Thread Peter Munch
Hej,

> One thing I'm confused is that why we use "make_hanging_node_constraints" 
and "interpolate_boundary_values" for a new constraints in solve_with_gmg 
in step-75, instead of the boundary_constraints as done in previous MG 
tutorials.

Your observation is correct. It is related to the fact that p-multigrid in 
deal.II uses the new global-coarsening infrastructure (it was introduced in 
release 7.3). In the other tutorials, the local-smoothing infrastructure is 
used. 

In a nutshell, the difference is that local smoothing is working on 
refinement levels, while global coarsening works on the complete active 
levels of multiple Triangulation/DoFHandler objects. In the case of 
h-multigrid, one works on multiple meshes, which are created by globally 
coarsening the finest mesh (this is the reason for the name "global 
coarsening"); in the case of p-multigrid, one would work with the same 
Triangulation but would distribute different FEs on different DoFHandler 
objects. Since you work on the active level, you can simple use the 
functions you would use if you don't work on refinement levels.

For more details see our publication: https://arxiv.org/abs/2203.12292

Hope this help,
Peter

On Wednesday, 5 October 2022 at 14:17:03 UTC+2 yy.wayne wrote:

> Hello sir,
>
> One thing I'm confused is that why we use "make_hanging_node_constraints" 
> and "interpolate_boundary_values" for a new constraints in solve_with_gmg 
> in step-75, instead of the boundary_constraints as done in previous MG 
> tutorials.
>
> 在2022年10月4日星期二 UTC+8 00:11:49 写道:
>
>> Hi!
>>
>> The "Possibilities for extensions" section of step-75 gives you a few 
>> hints on how to achieve p-multigrid preconditioning with matrix-based 
>> methods:
>>
>> https://www.dealii.org/current/doxygen/deal.II/step_75.html#Solvewithmatrixbasedmethods
>>
>> If you look for an example implementation, the "hpbox" tool demonstrates 
>> both matrix-based and matrix-free implementations of the p-multigrid method.
>> https://zenodo.org/record/6425947
>> https://github.com/marcfehling/hpbox/
>>
>> Best,
>> Marc
>>
>> On Monday, October 3, 2022 at 3:39:51 AM UTC-6 yy.wayne wrote:
>>
>>> Hello,
>>>
>>> I plan to test the converge of polynomial multigrid preconditioning on a 
>>> problem, with matrix-based framework. However, step-75 is a bit confusing 
>>> since I cannot clearly separate classses contributed by matrix-free and 
>>> p-multigrid. 
>>>
>>> Specifically, in step-16 (with MeshWorker) and step-56 (assemble 
>>> cell_matrix by hand) there are assemble_system() and assemble_multigrid(), 
>>> while in step-75 there are solve_system() which calls solve_with_gmg and 
>>> mg_solve. It is due to matrix-free or p-multigrid? By the way, is there a 
>>> code gallery for matrix-based polynomial-multigrid ? 
>>>
>>> Thanks
>>>
>>

-- 
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/856696f6-57d6-48f9-8649-035d6d513553n%40googlegroups.com.


[deal.II] Re: Matrix-based p-multigrid preconditioning

2022-10-05 Thread 'yy.wayne' via deal.II User Group
Hello sir,

One thing I'm confused is that why we use "make_hanging_node_constraints" 
and "interpolate_boundary_values" for a new constraints in solve_with_gmg 
in step-75, instead of the boundary_constraints as done in previous MG 
tutorials.

在2022年10月4日星期二 UTC+8 00:11:49 写道:

> Hi!
>
> The "Possibilities for extensions" section of step-75 gives you a few 
> hints on how to achieve p-multigrid preconditioning with matrix-based 
> methods:
>
> https://www.dealii.org/current/doxygen/deal.II/step_75.html#Solvewithmatrixbasedmethods
>
> If you look for an example implementation, the "hpbox" tool demonstrates 
> both matrix-based and matrix-free implementations of the p-multigrid method.
> https://zenodo.org/record/6425947
> https://github.com/marcfehling/hpbox/
>
> Best,
> Marc
>
> On Monday, October 3, 2022 at 3:39:51 AM UTC-6 yy.wayne wrote:
>
>> Hello,
>>
>> I plan to test the converge of polynomial multigrid preconditioning on a 
>> problem, with matrix-based framework. However, step-75 is a bit confusing 
>> since I cannot clearly separate classses contributed by matrix-free and 
>> p-multigrid. 
>>
>> Specifically, in step-16 (with MeshWorker) and step-56 (assemble 
>> cell_matrix by hand) there are assemble_system() and assemble_multigrid(), 
>> while in step-75 there are solve_system() which calls solve_with_gmg and 
>> mg_solve. It is due to matrix-free or p-multigrid? By the way, is there a 
>> code gallery for matrix-based polynomial-multigrid ? 
>>
>> Thanks
>>
>

-- 
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/4d217db0-6b03-4286-8b3f-ccbf01417768n%40googlegroups.com.


[deal.II] Re: Matrix-based p-multigrid preconditioning

2022-10-04 Thread 'yy.wayne' via deal.II User Group
Thank you, I'll read the implmentation in "hpbox" then.

在2022年10月4日星期二 UTC+8 00:11:49 写道:

> Hi!
>
> The "Possibilities for extensions" section of step-75 gives you a few 
> hints on how to achieve p-multigrid preconditioning with matrix-based 
> methods:
>
> https://www.dealii.org/current/doxygen/deal.II/step_75.html#Solvewithmatrixbasedmethods
>
> If you look for an example implementation, the "hpbox" tool demonstrates 
> both matrix-based and matrix-free implementations of the p-multigrid method.
> https://zenodo.org/record/6425947
> https://github.com/marcfehling/hpbox/
>
> Best,
> Marc
>
> On Monday, October 3, 2022 at 3:39:51 AM UTC-6 yy.wayne wrote:
>
>> Hello,
>>
>> I plan to test the converge of polynomial multigrid preconditioning on a 
>> problem, with matrix-based framework. However, step-75 is a bit confusing 
>> since I cannot clearly separate classses contributed by matrix-free and 
>> p-multigrid. 
>>
>> Specifically, in step-16 (with MeshWorker) and step-56 (assemble 
>> cell_matrix by hand) there are assemble_system() and assemble_multigrid(), 
>> while in step-75 there are solve_system() which calls solve_with_gmg and 
>> mg_solve. It is due to matrix-free or p-multigrid? By the way, is there a 
>> code gallery for matrix-based polynomial-multigrid ? 
>>
>> Thanks
>>
>

-- 
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/4286909e-2e2d-49a7-8f1b-d48fcf9542edn%40googlegroups.com.


[deal.II] Re: Matrix-based p-multigrid preconditioning

2022-10-03 Thread Marc Fehling
Hi!

The "Possibilities for extensions" section of step-75 gives you a few hints 
on how to achieve p-multigrid preconditioning with matrix-based methods:
https://www.dealii.org/current/doxygen/deal.II/step_75.html#Solvewithmatrixbasedmethods

If you look for an example implementation, the "hpbox" tool demonstrates 
both matrix-based and matrix-free implementations of the p-multigrid method.
https://zenodo.org/record/6425947
https://github.com/marcfehling/hpbox/

Best,
Marc

On Monday, October 3, 2022 at 3:39:51 AM UTC-6 yy.wayne wrote:

> Hello,
>
> I plan to test the converge of polynomial multigrid preconditioning on a 
> problem, with matrix-based framework. However, step-75 is a bit confusing 
> since I cannot clearly separate classses contributed by matrix-free and 
> p-multigrid. 
>
> Specifically, in step-16 (with MeshWorker) and step-56 (assemble 
> cell_matrix by hand) there are assemble_system() and assemble_multigrid(), 
> while in step-75 there are solve_system() which calls solve_with_gmg and 
> mg_solve. It is due to matrix-free or p-multigrid? By the way, is there a 
> code gallery for matrix-based polynomial-multigrid ? 
>
> Thanks
>

-- 
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/19802e08-cd43-49a9-a060-2a62ff68c7e6n%40googlegroups.com.