Here is a patch to make edge_reinit() behave like reinit(elem,side) in
terms of how it sets shapes_on_quadrature.
-- Boyce
On 5/3/11 11:53 AM, Boyce Griffith wrote:
What is going wrong with caching?
Looking at line 178 of fe_boundary.C:
// The shape functions correspond to the qrule
shapes_on_quadrature = (qrule != NULL);
If this should be there at all, it seems like it should be:
// The shape functions correspond to the qrule
shapes_on_quadrature = (pts == NULL);
-- Boyce
On 5/3/11 11:42 AM, Roy Stogner wrote:
Cool, but be vigilant. There'll be more changes coming; some bugs in
how the new patch interacts with caching that I need to fix.
---
Roy
On Tue, 3 May 2011, John Peterson wrote:
I can confirm that this change fixes the segfault in ex0.
Checking our other regression tests now...
--
John
On Tue, May 3, 2011 at 9:25 AM, Boyce Griffith <[email protected]>
wrote:
Grrrrrrrr, looks like there was a bug in the patch (which I am
surprised
didn't cause me any problems).
Index: src/fe/fe_boundary.C
===================================================================
--- src/fe/fe_boundary.C (revision 4447)
+++ src/fe/fe_boundary.C (working copy)
@@ -137,7 +137,7 @@
else
{
// initialize quadrature rule
- if (pts != NULL) qrule->init(side->type(), side_p_level);
+ qrule->init(side->type(), side_p_level);
// FIXME - could this break if the same FE object was used
// for both volume and face integrals? - RHS
On 5/3/11 11:20 AM, Roy Stogner wrote:
Yeah; looks like Boyce's patch missed the FEXYZ versions of those
functions. I should have noticed those warnings earlier; I'll fix it.
---
Roy
On Tue, 3 May 2011, Cody Permann wrote:
These errors were on OS X but I just confirmed similar errors on
Linux
as well.
Cody
On May 3, 2011, at 9:06 AM, John Peterson wrote:
I'm getting lots of warnings after the latest patch to the FE stuff
when compiling in dbg mode:
/Users/petejw/projects/libmesh_git/include/fe/fe.h: In instantiation
of ‘libMesh::FEXYZ<0u>’:
src/fe/fe_base.C:106: instantiated from here
/Users/petejw/projects/libmesh_git/include/fe/fe.h:304: warning:
‘void
libMesh::FE<Dim, T>::reinit(const libMesh::Elem*,
const std::vector<libMesh::Point, std::allocator<libMesh::Point>
*, const std::vector<double, std::allocator<double> >*)
[with unsigned int Dim = 0u, libMeshEnums::FEFamily T = XYZ]’ was
hidden
/Users/petejw/projects/libmesh_git/include/fe/fe.h:646: warning: by
‘libMesh::FEXYZ<0u>::reinit’
/Users/petejw/projects/libmesh_git/include/fe/fe.h:319: warning:
‘void
libMesh::FE<Dim, T>::reinit(const libMesh::Elem*,
unsigned int, libMesh::Real, const std::vector<libMesh::Point,
std::allocator<libMesh::Point> >*,
const std::vector<double, std::allocator<double> >*)
[with unsigned int Dim = 0u, libMeshEnums::FEFamily T = XYZ]’ was
hidden
/Users/petejw/projects/libmesh_git/include/fe/fe.h:646: warning: by
‘libMesh::FEXYZ<0u>::reinit’
/Users/petejw/projects/libmesh_git/include/fe/fe.h: In instantiation
of ‘libMesh::FEXYZ<1u>’:
And a segfault in ex0:
Starting program:
/Users/petejw/projects/libmesh_git/examples/ex0/ex0-dbg
Reading symbols for shared libraries .+++++++++++++++++++++++. done
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000008
0x0000000100be71a1 in libMesh::TypeVector<double>::operator()
(this=0x0, i=0) at type_vector.h:356
356 return _coords[i];
(gdb) bt
#0 0x0000000100be71a1 in libMesh::TypeVector<double>::operator()
(this=0x0, i=0) at type_vector.h:356
#1 0x00000001008d801b in libMesh::FE<1u,
(libMeshEnums::FEFamily)0>::shape (order=libMeshEnums::SECOND, i=0,
p=@0x0) at src/fe/fe_lagrange_shape_1D.C:39
#2 0x00000001008045c3 in libMesh::FE<1u,
(libMeshEnums::FEFamily)0>::init_shape_functions (this=0x10281c600,
qp=@0x7fff5fbfe0e0, elem=0x102003f80) at src/fe/fe.C:501
#3 0x00000001007c0200 in libMesh::FE<1u,
(libMeshEnums::FEFamily)0>::reinit (this=0x10281c600,
elem=0x102003f80, pts=0x7fff5fbfe0e0, weights=0x0) at
src/fe/fe.C:135
#4 0x00000001008655c7 in libMesh::FE<1u,
(libMeshEnums::FEFamily)0>::reinit (this=0x10281c600,
elem=0x102003f80, s=1, tolerance=9.9999999999999995e-07, pts=0x0,
weights=0x0) at src/fe/fe_boundary.C:180
#5 0x0000000100790875 in libMesh::JumpErrorEstimator::reinit_sides
(this=0x7fff5fbfe570) at
src/error_estimation/jump_error_estimator.C:421
#6 0x0000000100791696 in libMesh::JumpErrorEstimator::estimate_error
(this=0x7fff5fbfe570, system=@0x102004580,
error_per_cell=@0x7fff5fbfe8d0, solution_vector=0x0,
estimate_parent_error=false) at
src/error_estimation/jump_error_estimator.C:307
#7 0x0000000100004808 in main (argc=1, argv=0x7fff5fbfe9a8) at
ex0.C:125
Some moose tests are failing as well, working on getting stack
traces
for those.
In the meantime, could we revert the latest patch Roy?
--
John
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel
Index: src/fe/fe_boundary.C
===================================================================
--- src/fe/fe_boundary.C (revision 4451)
+++ src/fe/fe_boundary.C (working copy)
@@ -198,12 +198,9 @@
// points
if (pts != NULL)
{
- // Set the element type
- elem_type = elem->type();
+ // The shape functions do not correspond to the qrule
+ shapes_on_quadrature = false;
- // Set the last_edge
- last_edge = std::numeric_limits<unsigned int>::max();
-
// Initialize the edge shape functions
this->init_edge_shape_functions (*pts, edge.get());
@@ -243,6 +240,9 @@
// Compute the Jacobian*Weight on the face for integration
this->compute_edge_map (qrule->get_weights(), edge.get());
+
+ // The shape functions correspond to the qrule
+ shapes_on_quadrature = true;
}
// make a copy of the Jacobian for integration
@@ -256,9 +256,6 @@
// at the points qp
this->reinit (elem, &qp);
- // The shape functions correspond to the qrule
- shapes_on_quadrature = (qrule != NULL);
-
// copy back old data
JxW = JxW_int;
}
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel