From: Bin <xub...@gm...> - 2007-06-26 05:59:08
|
Hi, I am now developing a biot poroelastic problem using libmesh. In my problem, I use Qudratic element for solid displacement and linear element for fulid pressure. I got some strange problems: When I use Qudratic triangle element in my mesh, the computation results is good. But when I change to Qudratic Quadrilateral Element , I got some memory problems, like: *Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1074001216 (LWP 24625)] 0x0e6beb70 in std::__default_alloc_template<true, 0>::allocate () from /usr/lib/libstdc++.so.5* ** I debug the code and found that in the first time step the solution is right and this error came from second time step. I copy the debug information in the following. Could anyone help me? *Breakpoint 2, assemble_poro (**es=@0xffffdd80* <es=@0xffffdd80>*, ** system_name=@0x10071ad8* <system_name=@0x10071ad8>*) at poro.C:324 324 fe_vel->reinit (elem); (gdb) s AutoPtr<FEBase>::operator-> (this=0xffffd5a0) at auto_ptr.h:216 216 operator->() const { return _ptr; } (gdb) s FE<2u, (libMeshEnums::FEFamily)0>::reinit (this=0x1025b788, elem=0x10079bc0, pts=0x0) at fe.C:121 121 assert (elem != NULL); (gdb) n 125 bool cached_nodes_still_fit = false; (gdb) n 129 if (pts != NULL) (gdb) n 151 assert (qrule != NULL); (gdb) n 152 qrule->init(elem->type(), elem->p_level()); (gdb) n 154 if (elem_type != elem->type() || (gdb) n 159 elem_type = elem->type(); (gdb) n 160 _p_level = elem->p_level(); (gdb) n 162 this->init_shape_functions (qrule->get_points(), elem); (gdb) n* *Program received signal SIGSEGV, Segmentation fault. 0x0e6beb70 in std::__default_alloc_template<true, 0>::allocate () from /usr/lib/libstdc++.so.5 * -- Best regards, Bin |