Implicit stepping methods from the TimeStepping-namespace for large sparse matrices

13 views
Skip to first unread message

Maxi Miller

unread,
Jul 15, 2019, 3:04:06 PM7/15/19
to deal.II User Group
As far as I understand all implicit time-stepping methods in the TimeStepping-namespace take a function which invert the jacobian matrix and the mass matrix (combined). This is done using a sparse solver (UMFPACK). Is it that still possible for a larger system (10kk DoFs), or do I have to resort to other methods, after inverting the sparse matrix will result in a dense matrix (which likely will overflow my memory)?

Daniel Arndt

unread,
Jul 15, 2019, 4:03:46 PM7/15/19
to dea...@googlegroups.com
Maxi,

The interface for TimeStepping::evolve_one_time_step is:

virtual double
  evolve_one_time_step(
  std::vector<std::function<VectorType(const double, const VectorType &)>>
  & F,
  std::vector<std::function<
  VectorType(const double, const double, const VectorType &)>> &J_inverse,
  double t,
  double delta_t,
  VectorType & y);

and does not depend on UMFPACK at all. You just need to provide a function-type object that can be used for evaluating the inverse of the Jacobians and the right-hand side.
You might also want to have a look at the test base/time_stepping_01 (https://github.com/dealii/dealii/blob/master/tests/base/time_stepping_01.cc).

Best,
Daniel


Am Mo., 15. Juli 2019 um 15:04 Uhr schrieb 'Maxi Miller' via deal.II User Group <dea...@googlegroups.com>:
As far as I understand all implicit time-stepping methods in the TimeStepping-namespace take a function which invert the jacobian matrix and the mass matrix (combined). This is done using a sparse solver (UMFPACK). Is it that still possible for a larger system (10kk DoFs), or do I have to resort to other methods, after inverting the sparse matrix will result in a dense matrix (which likely will overflow my memory)?

--
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/ccfe4a75-775d-471b-b69e-4a886c2e443d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Maxi Miller

unread,
Jul 16, 2019, 11:13:38 AM7/16/19
to deal.II User Group
If I understand it correctly, that is equivalent to solving Ax = b, with A and b given, and x returned?


Am Montag, 15. Juli 2019 22:03:46 UTC+2 schrieb Daniel Arndt:
Maxi,

The interface for TimeStepping::evolve_one_time_step is:

virtual double
  evolve_one_time_step(
  std::vector<std::function<VectorType(const double, const VectorType &)>>
  & F,
  std::vector<std::function<
  VectorType(const double, const double, const VectorType &)>> &J_inverse,
  double t,
  double delta_t,
  VectorType & y);

and does not depend on UMFPACK at all. You just need to provide a function-type object that can be used for evaluating the inverse of the Jacobians and the right-hand side.
You might also want to have a look at the test base/time_stepping_01 (https://github.com/dealii/dealii/blob/master/tests/base/time_stepping_01.cc).

Best,
Daniel


Am Mo., 15. Juli 2019 um 15:04 Uhr schrieb 'Maxi Miller' via deal.II User Group <dea...@googlegroups.com>:
As far as I understand all implicit time-stepping methods in the TimeStepping-namespace take a function which invert the jacobian matrix and the mass matrix (combined). This is done using a sparse solver (UMFPACK). Is it that still possible for a larger system (10kk DoFs), or do I have to resort to other methods, after inverting the sparse matrix will result in a dense matrix (which likely will overflow my memory)?

--
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 dea...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages