> You're using a quadrature rule somewhere, though: it's

QBase::n_points() that's failing.  In ex8 there are two calls to
> n_points() - did you add a third, and in any case which of them is
> failing?  (look for the traceout files with stack traces, or run in a
> debugger)  For the failing one, how did you declare the rule?  Is it
> being initialized before use?


Stack frames: 10
0: print_trace(std::ostream&)
1: QBase::n_points() const
2: assemble_ldm(EquationSystems&, std::string const&)
3: System::user_assembly()
4: System::assemble()
5: ImplicitSystem::assemble()
6: NewmarkSystem::assemble()
7: main
8: __libc_start_main
9: ./dld3d_v5-dbg() [0x441d69]

This is the content in the traceout_0_?????.txt, the ????? varies according
to
different case. I am not good at debugging, the falling one seems the No.10,

which is the name of executable file '/dld3d_v5-dbg() [0x441d69] '. Does
that mean
the whole program collapsed because of something wrong in the code?


Yes, they do.  These are the global sparse matrices and forcing vector
> that define the ex8 algebraic problem on the entire domain.   But they
> are constructed from components like:
>
>
>  DenseSubMatrix<Number>
>>     Kuu(Ke),  Kuv(Ke), Kuw(Ke),
>>     Kvu(Ke),  Kvv(Ke), Kvw(Ke),
>>     Kwu(Ke), Kwv(Ke), Kww(Ke);
>>
>
> which are the dense matrices (and submatrices, for each variable) on
> each element.  In ex8, stiffness.add_matrix(Ke, dof_indices) adds a
> permutation (from local to global indices) of the Ke matrix to the
> stiffness matrix.
>
> I didn't know this method, thanks for telling me this to convey
the [Ke] to the [stiffness]. When I add these commands to the
code, the previous error disappeared and another shows like

/usr/include/c++/4.4/debug/vector:272:error: attempt to subscript container
    with out-of-bounds index 0, but container only holds 0 elements.

Objects involved in the operation:
sequence "this" @ 0x0x7fffd1904378 {
  type = NSt7__debug6vectorIdSaIdEEE;
}

No traceout_0_xxx files generated this time, I guess the error comes from
the
vector definition, I will check the whole vectors later.



>

> Not just required for the NewmarkSystem solver, but for the underlying
> time integration algorithm... if you didn't want to use the Newmark
> method then ex8 might not have been the best choice of starting point
> for you.
>
>
> The model is about the solid elasticity problem, which is a second order
time dependent PDEs, so probably the ex8 is a good example for me.
maybe I should get the steady case work before jumping to the transient
problem.




>
> Yes.  With one variable on a grid of a million trilinear hexahedra,
> for instance, the SparseMatrix will be a (roughly) 1000000x1000000
> matrix (which fits into memory because we only store the 1000000x27
> potentially non-zero entries) while the DenseMatrix will be a 8x8
> matrix with all 64 entries typically non-zero.
> ---
>

Sounds the Densematrix is quit efficient, so why not the Newmark solver
use the Densematrix also, Is it limited by the PETSc solver? I am thinking
how difficult to develop another 2nd time rate solver such as HHT. is it
possible
to get new time solver done with one source file and header file?


I greatly appreciate your time and clear explanation, it is very helpful.
Thanks!

Liang
------------------------------------------------------------------------------
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to