Hi Paul,
Did you try this in 2D or 3D? I do not get this error in 2D, but it shows up
in 3D.
The following code is able to reproduce the issue at my end.
int main (int argc, char* const argv[])
{
// Initialize libMesh.
LibMeshInit init (argc, argv);
{
ParallelMesh m(init.comm());
MeshTools::Generation::build_cube(m, 5,5,5, 0., 1., 0., 1., 0., 1.,
HEX8);
EquationSystems es(m);
ExplicitSystem& s = es.add_system<ExplicitSystem>("mys");
FEType fe;
s.add_variable("v", fe);
es.init();
class Func: public FEMFunctionBase<Real> {
public:
virtual AutoPtr<FEMFunctionBase<Real> > clone () const {
return AutoPtr<FEMFunctionBase<Real> > (new Func); };
virtual Real operator() (const FEMContext&, const Point& p,
const Real time = 0.) { return 0.; };
virtual void operator() (const FEMContext&, const Point& p,
const Real time,
DenseVector<Real>& output) {
output.zero(); };
};
Func ff;
s.project_solution(&ff);
}
return 0;
}
Please let me know if you see the same behavior. Maybe I am doing
something wrong?
Thanks,
Manav
On Sep 20, 2013, at 6:21 PM, Paul T. Bauman <[email protected]> wrote:
> Hmm. I can't reproduce this. I have a code that uses FEMFunction for
> projections and I bumped up the basis order and cannot trip the error you
> are. In fact, I manually verified that n_points() returns the correct value
> on that line. Can you make a test case that trips the error? Are you using a
> LAGRANGE basis or some other one? What order?
>
>
> On Fri, Sep 20, 2013 at 3:24 PM, Manav Bhatia <[email protected]> wrote:
> Just found the the call to side_fe_reinit() in this for loop. It seems like
> the entire block from lines 2238 to 2247 should be moved to after the
> context.side_fe_reinit() ?
>
> -Manav
> On Fri, Sep 20, 2013 at 4:21 PM, Manav Bhatia <[email protected]> wrote:
> I was comparing the code with AssemblyContributions in fem_system.C, and see
> that context.side_fe_reinit() has not been called before the call to get
> qsiderule.n_points(). Should that be added to the for loop on element sides
> at line 2248 and move the get_side_qrule method call (line 2238) after this
> call?
>
> -Manav
>
> On Fri, Sep 20, 2013 at 4:09 PM, Manav Bhatia <[email protected]> wrote:
> Yes, it is 2239. I am sorry about the typo and the resulting confusion.
> -Manav
>
>
> On Fri, Sep 20, 2013 at 4:07 PM, Roy Stogner <[email protected]> wrote:
>
> On Fri, 20 Sep 2013, Manav Bhatia wrote:
>
> Sorry I was not too specific. I am on the git master, and line 2339 is a
> call to qsiderule.n_points(). It has an assertion of
> libmesh_assert(!_points.empyt()), where the code throws an exception.
>
> I think Paul's (and my) confusion was a simple typo - you're referring
> to line 2239, not 2339.
> ---
> Roy
>
>
>
>
------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/22/13.
http://pubads.g.doubleclick.net/gampad/clk?id=64545871&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users