Stefano, thanks for your note. The consistent splittings currently
supported under ts_type arkimex are give in Table 11 in the manual:
http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf
Your case a) is not treated as you wrote it down. The reasoning behind
the use cases is that M will have to be inverted directly or indirectly
if you put it in F(...) because it's in implicit ODE. In your case b)
you handle that directly; however, in case a) the M in F(...) is ignored
in some steps leading to inconsistent formulations. That being said,
there are ways of solving it as in case a) if M is full rank: some hints
are in the caption in Table 11, but I can expand.
Also in Table 11, there is a note about instructing TS that the user is
specifying an implicit ODE (M*ydot....): " set TSSetEquationType() to
TS_EQ_IMPLICIT or higher". That sould solve the
-ts_arkimex_fully_implicit inconsistency issue.
Emil
On 11/14/16 4:09 AM, Stefano Zampini wrote:
I came across this thing recently, and I couldn't figure out where the
issue could be.
The problem I'm solving is a simple DG advection, the ode is M*udot =
K*u+b, M is diagonal.
Attached is a MWE that reproduces the problem.
The problem is formed in two different cases depending on the command
line option -m_lhs
a) -m_lhs 1 : F(u,udot,t) = M*udot, G(u,t) = K*u+b
b) -m_lhs 0 : F(u,udot,t) = udot, G(u,t) = M^-1(K*u+b)
Using option b) and RK4, the solution is ok.
If run with any implicit TS method except arkimex, no matter if I'm
choosing option a) or b), the solution is always very close (say, final
error < 0.05) to the expected one (computed with BDF).
When using ARKIMEX, case b) gives a good solution, but not case a). In
fact, the solution does not seem to be advected at all in this case.
I was wondering if I'm doing something wrong or there's a bug in the
ARKIMEX implementation.
I also noticed that, using -ts_arkimex_fully_implicit does not produce
the same output for case a) and b). Shouldn't they produce the same
method with this option?
Thanks,
--
Stefano
BLOCKED FILE ALERT
A file has been blocked due to the 'Blocked for exchange' rule.
Context: 'b.bin'
Disallowed due to
Ticket Number: '099c-5829-8d6a-0002'
----------------------------------------
BLOCKED FILE ALERT
A file has been blocked due to the 'Blocked for exchange' rule.
Context: 'final.bin'
Disallowed due to
Ticket Number: '099c-5829-8d6a-0002'
----------------------------------------
BLOCKED FILE ALERT
A file has been blocked due to the 'Blocked for exchange' rule.
Context: 'K.bin'
Disallowed due to
Ticket Number: '099c-5829-8d6a-0002'
----------------------------------------
BLOCKED FILE ALERT
A file has been blocked due to the 'Blocked for exchange' rule.
Context: 'M.bin'
Disallowed due to
Ticket Number: '099c-5829-8d6a-0002'
----------------------------------------
BLOCKED FILE ALERT
A file has been blocked due to the 'Blocked for exchange' rule.
Context: 'u0.bin'
Disallowed due to
Ticket Number: '099c-5829-8d6a-0002'
See your system administrator for further information. Copyright 1999-2013
McAfee, Inc.All Rights Reserved.http://www.mcafee.com