Re: [deal.II] Implementation of Broyden's method

2018-12-11 Thread Wolfgang Bangerth
On 12/11/18 12:50 AM, 'Maxi Miller' via deal.II User Group wrote: > Still, that would require me to change every vector from > TrilinosWrappers::MPI::Vector to LinearAlgebra::distributed::Vector. > Is there any advantage of doing that? (And is there any advantage of using > TrilinosWrappers comp

Re: [deal.II] Implementation of Broyden's method

2018-12-10 Thread 'Maxi Miller' via deal.II User Group
Still, that would require me to change every vector from TrilinosWrappers::MPI::Vector to LinearAlgebra::distributed::Vector. Is there any advantage of doing that? (And is there any advantage of using TrilinosWrappers compared to LinearAlgebra (i.e. the built-in functions from deal.II)? Am Mon

Re: [deal.II] Implementation of Broyden's method

2018-12-10 Thread Bruno Turcksin
Le lun. 10 déc. 2018 à 15:37, 'Maxi Miller' via deal.II User Group a écrit : > > Do the deal.II-internal solvers work on Trilinos-MPI-Vectors? Or is there a > way to "recreate" a trilinos-matrix in the same way as I did here? deal.II solvers are templated on the matrix type, the vector type, and

Re: [deal.II] Implementation of Broyden's method

2018-12-10 Thread 'Maxi Miller' via deal.II User Group
Do the deal.II-internal solvers work on Trilinos-MPI-Vectors? Or is there a way to "recreate" a trilinos-matrix in the same way as I did here? Am Montag, 10. Dezember 2018 21:36:10 UTC+1 schrieb Bruno Turcksin: > > Le lun. 10 déc. 2018 à 15:27, 'Maxi Miller' via deal.II User Group > > a écrit :

Re: [deal.II] Implementation of Broyden's method

2018-12-10 Thread Bruno Turcksin
Le lun. 10 déc. 2018 à 15:27, 'Maxi Miller' via deal.II User Group a écrit : > LinearAlgebraTrilinos::SolverCG solver (solver_control); You cannot use Trilinos solvers with your own matrix type. With Trilinos solvers, you need to use a Trilinos matrix. You want to use deal.II's own solvers wh

Re: [deal.II] Implementation of Broyden's method

2018-12-10 Thread 'Maxi Miller' via deal.II User Group
I tried to implement that (as in example 20) with a class for the matrix class jacobian_approximation : public Subscriptor { public: jacobian_approximation(std::function residual_function, const MPI_Comm &mpi_communicator, const IndexSet& d

Re: [deal.II] Implementation of Broyden's method

2018-12-04 Thread Bruno Turcksin
Maxi, On Tuesday, December 4, 2018 at 3:48:41 AM UTC-5, Maxi Miller wrote: > > What do you mean with "What I want to do with the matrix afterwards"? And > I am not sure if I need it element-by-element, I just would like to > implement a cheaper update method than the full recalculation. > If you

Re: [deal.II] Implementation of Broyden's method

2018-12-04 Thread Daniel Arndt
Maxi, What do you mean with "What I want to do with the matrix afterwards"? And I > am not sure if I need it element-by-element, I just would like to implement > a cheaper update method than the full recalculation. > You can always obtain a matrix representation of a linear operator by applyi

Re: [deal.II] Implementation of Broyden's method

2018-12-04 Thread 'Maxi Miller' via deal.II User Group
What do you mean with "What I want to do with the matrix afterwards"? And I am not sure if I need it element-by-element, I just would like to implement a cheaper update method than the full recalculation. Am Dienstag, 27. November 2018 22:21:00 UTC+1 schrieb Wolfgang Bangerth: > > On 11/27/2018

Re: [deal.II] Implementation of Broyden's method

2018-11-27 Thread Wolfgang Bangerth
On 11/27/2018 02:11 PM, 'Maxi Miller' via deal.II User Group wrote: > I am trying to solve a system of nonlinear equations using the > Newton-method as described in example 33. My problem is that the > assembly of the newton matrix takes 71 % of the time of the calculations > (for five iteration

Re: [deal.II] Implementation of Broyden's method

2018-11-27 Thread 'Maxi Miller' via deal.II User Group
I am trying to solve a system of nonlinear equations using the Newton-method as described in example 33. My problem is that the assembly of the newton matrix takes 71 % of the time of the calculations (for five iterations). Thus I would like to calculate this matrix once (at the beginning of ea

Re: [deal.II] Implementation of Broyden's method

2018-11-27 Thread Wolfgang Bangerth
On 11/27/2018 11:22 AM, 'Maxi Miller' via deal.II User Group wrote: > Wouldn't that give me a vector instead of a (sparse) matrix which I need > afterwards? Yes, of course. But as I've mentioned before, the matrix that you update with your formula is dense. You can't store it, and you can't eff

Re: [deal.II] Implementation of Broyden's method

2018-11-27 Thread 'Maxi Miller' via deal.II User Group
Wouldn't that give me a vector instead of a (sparse) matrix which I need afterwards? Am Mittwoch, 21. November 2018 15:57:08 UTC+1 schrieb Wolfgang Bangerth: > > On 11/21/18 5:39 AM, 'Maxi Miller' via deal.II User Group wrote: > > Hmm, but in that case I have an addition (update of the sparse >

Re: [deal.II] Implementation of Broyden's method

2018-11-21 Thread Wolfgang Bangerth
On 11/21/18 5:39 AM, 'Maxi Miller' via deal.II User Group wrote: > Hmm, but in that case I have an addition (update of the sparse jacobian), > which I do not know how to handle (yet) Well, if you also have a previous Jacobian matrix, say J, then you would replace... >    void BroydenOperat

Re: [deal.II] Implementation of Broyden's method

2018-11-21 Thread 'Maxi Miller' via deal.II User Group
Hmm, but in that case I have an addition (update of the sparse jacobian), which I do not know how to handle (yet) Am Dienstag, 20. November 2018 23:07:17 UTC+1 schrieb Wolfgang Bangerth: > > On 11/20/18 2:27 PM, 'Maxi Miller' via deal.II User Group wrote: > > how exactly can I understand that? I

Re: [deal.II] Implementation of Broyden's method

2018-11-20 Thread Wolfgang Bangerth
On 11/20/18 2:27 PM, 'Maxi Miller' via deal.II User Group wrote: > how exactly can I understand that? I have to generate a second matrix, which > then will be added to the sparse matrix, but (due to the vector > multiplication) will be a full matrix, something I would like to avoid. No, you don'

Re: [deal.II] Implementation of Broyden's method

2018-11-20 Thread 'Maxi Miller' via deal.II User Group
Hei, how exactly can I understand that? I have to generate a second matrix, which then will be added to the sparse matrix, but (due to the vector multiplication) will be a full matrix, something I would like to avoid. Thanks! -- The deal.II project is located at http://www.dealii.org/ For mail

Re: [deal.II] Implementation of Broyden's method

2018-11-20 Thread Wolfgang Bangerth
On 11/19/18 1:18 AM, 'Maxi Miller' via deal.II User Group wrote: > I would like to implement Broyden's method, to speed up the assembly of the > jacobian when solving a nonlinear system, which results in an equation > containing the difference of the residual, the difference of the solution and

[deal.II] Implementation of Broyden's method

2018-11-19 Thread 'Maxi Miller' via deal.II User Group
I would like to implement Broyden's method, to speed up the assembly of the jacobian when solving a nonlinear system, which results in an equation containing the difference of the residual, the difference of the solution and the current jacobian matrix, i.e. J_{n+1}=J_n+\frac{\Delta f_n-J_n\Del