FEFaceValues used to not run in 1d, but I think it does now. In any case, at
least it should.
Your question begs another question: what actually happens if you use
MeshWorker in 1d?
Well, the easy answer is the backtrace:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
boost::shared_ptr<dealii::FEValuesBase<1, 1> >::operator-> (this=0x0) at shared_ptr.hpp:424
424 BOOST_ASSERT(px != 0);
(gdb) bt
#0 boost::shared_ptr<dealii::FEValuesBase<1, 1> >::operator-> (this=0x0) at shared_ptr.hpp:424
#1 0x0000000100dbaaf1 in dealii::MeshWorker::IntegrationInfo<1, 1>::initialize_data (this=0x7fff5fbfe120, data=@0x7fff5fbfd6d0) at integration_info.templates.h:29
#2 0x0000000100014937 in dealii::MeshWorker::IntegrationInfoBox<1, 1>::initialize<dealii::Vector<double> > (this=0x7fff5fbfdc70, el=@0x7fff5fbfef30, mapping=@0x7fff5fbfea30, data=@0x7fff5fbfdbe0, block_info=0x0) at integration_info.h:1168
#3 0x000000010000fa61 in Parabolic::ParabolicProblem<1>::assemble_rhs (this=0x7fff5fbfea30, solution=@0x10c90aa00, residual=@0x10c90b9f0, assemble_jacobian=false) at /Users/smiller/Dropbox/ED_ComparisonStudy/ParabolicApprox/parabolic.cc:444
#4 0x000000010004a803 in boost::_mfi::mf3<void, Parabolic::ParabolicProblem<1>, dealii::Vector<double>&, dealii::Vector<double>&, bool>::operator() (this=0x7fff5fbff778, p=0x7fff5fbfea30, a1=@0x10c90aa00, a2=@0x10c90b9f0, a3=false) at mem_fn_template.hpp:393
#5 0x000000010004a748 in boost::_bi::list4<boost::_bi::value<Parabolic::ParabolicProblem<1>*>, boost::arg<1>, boost::arg<2>, boost::arg<3> >::operator()<boost::_mfi::mf3<void, Parabolic::ParabolicProblem<1>, dealii::Vector<double>&, dealii::Vector<double>&, bool>, boost::_bi::list3<dealii::Vector<double>&, dealii::Vector<double>&, bool&> > (this=0x7fff5fbff788, f=@0x7fff5fbff778, a=@0x7fff5fbfe418) at bind.hpp:457
#6 0x000000010004a652 in boost::_bi::bind_t<void, boost::_mfi::mf3<void, Parabolic::ParabolicProblem<1>, dealii::Vector<double>&, dealii::Vector<double>&, bool>, boost::_bi::list4<boost::_bi::value<Parabolic::ParabolicProblem<1>*>, boost::arg<1>, boost::arg<2>, boost::arg<3> > >::operator()<dealii::Vector<double>, dealii::Vector<double>, bool> (this=0x7fff5fbff778, a1=@0x10c90aa00, a2=@0x10c90b9f0, a3=@0x7fff5fbfe477) at bind_template.hpp:116
#7 0x000000010004a3b8 in boost::detail::function::void_function_obj_invoker3<boost::_bi::bind_t<void, boost::_mfi::mf3<void, Parabolic::ParabolicProblem<1>, dealii::Vector<double>&, dealii::Vector<double>&, bool>, boost::_bi::list4<boost::_bi::value<Parabolic::ParabolicProblem<1>*>, boost::arg<1>, boost::arg<2>, boost::arg<3> > >, void, dealii::Vector<double>&, dealii::Vector<double>&, bool>::invoke (function_obj_ptr=@0x7fff5fbff778, a0=@0x10c90aa00, a1=@0x10c90b9f0, a2=false) at function_template.hpp:153
#8 0x000000010000a68b in boost::function3<void, dealii::Vector<double>&, dealii::Vector<double>&, bool>::operator() (this=0x7fff5fbff770, a0=@0x10c90aa00, a1=@0x10c90b9f0, a2=false) at function_template.hpp:759
#9 0x00000001000093f6 in ExplicitTimeDiscretization<1>::compute_residual (this=0x7fff5fbff688, u_i_index=0, stage_index=0) at explicit_time_discretization.templates.h:208
#10 0x0000000100008382 in ExplicitTimeDiscretization<1>::advance_SSP_5_4 (this=0x7fff5fbff688) at explicit_time_discretization.templates.h:595
#11 0x0000000100006729 in ExplicitTimeDiscretization<1>::advance (this=0x7fff5fbff688) at explicit_time_discretization.templates.h:231
#12 0x000000010000594d in Parabolic::ParabolicProblem<1>::run (this=0x7fff5fbfea30) at /Users/smiller/Dropbox/ED_ComparisonStudy/ParabolicApprox/parabolic.cc:650
#13 0x00000001000041c8 in main () at /Users/smiller/Dropbox/ED_ComparisonStudy/ParabolicApprox/parabolic.cc:674
The interesting thing is the #2 line above: The code around integration_info.h 1168 is
p = std_cxx1x::shared_ptr<VectorData<VECTOR, dim, sdim> >(new VectorData<VECTOR, dim, sdim> (boundary_selector));
p->initialize(data);
boundary_data = p;
boundary.initialize_data(p);
-Scott