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

Reply via email to