Renato, could you create a minimum example that generates the discontinuous
error, and either share it here or create a ticket on github? That would be
useful for fixing the issue and adding a test in libmesh to ensure we
support the capability.

On Sat, Aug 25, 2018 at 8:33 AM, Alexander Lindsay <alexlindsay...@gmail.com
> wrote:

> Ah yes...key difference between "empty" and "zero"...
>
> On Aug 25, 2018, at 7:03 AM, Renato Poli <rebp...@gmail.com> wrote:
>
> No success. Stack trace below.
>
> Note that, if I define my variable _only_ on its domain (where there is 
> fluid) it works.
>
> In this case, the problem is in ExodusII_IO::write_discontinuous_timestep.
>
>
> [0]PETSC ERROR: --------------------- Error Message 
> --------------------------------------------------------------
> [0]PETSC ERROR: Object is in wrong state
> [0]PETSC ERROR: Matrix is missing diagonal entry 0
> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for 
> trouble shooting.
> [0]PETSC ERROR: Petsc Release Version 3.7.6, Apr, 24, 2017
> [0]PETSC ERROR: obj/bin/abada_sc11 on a linux-gnu-opt named dev-vb by dev Sat 
> Aug 25 09:55:36 2018
> [0]PETSC ERROR: Configure options --with-mpi-dir=/usr/lib/mpich 
> --with-shared-libraries=1 --with-debugging=yes --download-mumps 
> --download-hypre --download-scalapack --download-spai --download-parms
> [0]PETSC ERROR: #1 MatLUFactorSymbolic_SeqAIJ() line 301 in 
> /opt/petsc-3.7.6/src/mat/impls/aij/seq/aijfact.c
> [0]PETSC ERROR: #2 MatLUFactorSymbolic() line 2944 in 
> /opt/petsc-3.7.6/src/mat/interface/matrix.c
> [0]PETSC ERROR: #3 PCSetUp_LU() line 136 in 
> /opt/petsc-3.7.6/src/ksp/pc/impls/factor/lu/lu.c
> [0]PETSC ERROR: #4 PCSetUp() line 968 in 
> /opt/petsc-3.7.6/src/ksp/pc/interface/precon.c
> [0]PETSC ERROR: #5 KSPSetUp() line 390 in 
> /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c
> [0]PETSC ERROR: #6 KSPSolve() line 599 in 
> /opt/petsc-3.7.6/src/ksp/ksp/interface/itfunc.c
>
> Thanks,
>
> Renato
>
>
> On Fri, Aug 24, 2018 at 11:49 PM Alexander Lindsay <
> alexlindsay...@gmail.com> wrote:
>
>> If you're using PETSc as your underlying solver, try the options
>> `-pc_factor_shift_type NONZERO -pc_factor_shift_amount 1e-15`
>>
>> On Thu, Aug 23, 2018 at 2:58 PM, Renato Poli <rebp...@gmail.com> wrote:
>>
>>> Hi
>>>
>>> I am getting trouble here again ... really need some help.
>>>
>>> I have part of the domain without flow (and thus without the pressure
>>> variable defined).
>>> As I could not export that (could not get write_discontinuous_exodusII to
>>> work) I just left the matrix empty, without major impact so far.
>>> However, now I am using LU preconditioning, which does not accept empty
>>> entries in the diagonal.
>>>
>>> How can I get through?
>>> Any suggestion?
>>>
>>> Thanks upfront.
>>> Renato
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Aug 16, 2018 at 6:47 PM Renato Poli <rebp...@gmail.com> wrote:
>>>
>>> > Hi
>>> >
>>> > I see the stack trace below when writing a discontinuous timestep
>>> > (exo.write_discontinuous_timestep).
>>> > It happens when my variable is set only in part of the domain.
>>> > No problem arises if I use, instead: exo.write_equation_systems(fname,
>>> es)
>>> >
>>> > Any hint/workaround/idea?
>>> >
>>> > Thanks,
>>> > Renato
>>> >
>>> > This is how the variable is set.
>>> > |  std::set<subdomain_id_type> active_subdomains;
>>> > |  active_subdomains.clear();
>>> > |  active_subdomains.insert(SUBDOMAIN_A);
>>> > |  press_sys.add_variable ("p", SECOND, LAGRANGE, & active_subdomains);
>>> >
>>> > 0: libMesh::print_trace(std::ostream&)
>>> > 1: libMesh::MacroFunctions::report_error(char const*, int, char
>>> const*,
>>> > char const*)
>>> > 2:
>>> > libMesh::EquationSystems::build_discontinuous_solution_
>>> vector(std::__debug::vector<double,
>>> > std::allocator<double> >&,
>>> > std::__debug::set<std::__cxx11::basic_string<char,
>>> std::char_traits<char>,
>>> > std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> > std::char_traits<char>, std::allocator<char> > >,
>>> > std::allocator<std::__cxx11::basic_string<char,
>>> std::char_traits<char>,
>>> > std::allocator<char> > > > const*) const
>>> > 3:
>>> > libMesh::ExodusII_IO::write_discontinuous_exodusII(std::__
>>> cxx11::basic_string<char,
>>> > std::char_traits<char>, std::allocator<char> > const&,
>>> > libMesh::EquationSystems const&,
>>> > std::__debug::set<std::__cxx11::basic_string<char,
>>> std::char_traits<char>,
>>> > std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> > std::char_traits<char>, std::allocator<char> > >,
>>> > std::allocator<std::__cxx11::basic_string<char,
>>> std::char_traits<char>,
>>> > std::allocator<char> > > > const*)
>>> > 4:
>>> > libMesh::ExodusII_IO::write_timestep_discontinuous(std::__
>>> cxx11::basic_string<char,
>>> > std::char_traits<char>, std::allocator<char> > const&,
>>> > libMesh::EquationSystems const&, int, double,
>>> > std::__debug::set<std::__cxx11::basic_string<char,
>>> std::char_traits<char>,
>>> > std::allocator<char> >, std::less<std::__cxx11::basic_string<char,
>>> > std::char_traits<char>, std::allocator<char> > >,
>>> > std::allocator<std::__cxx11::basic_string<char,
>>> std::char_traits<char>,
>>> > std::allocator<char> > > > const*)
>>> >
>>> >
>>> ------------------------------------------------------------
>>> ------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Libmesh-users mailing list
>>> Libmesh-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>>>
>>
>>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to