HP with parallel::shared::Triangulation<dim>

49 views
Skip to first unread message

Pete Griffin

unread,
Jul 31, 2016, 2:06:54 PM7/31/16
to deal.II User Group
Hi, All.

I get an error from an assertion in the call to:
   dof_handler.distribute_dofs (fe_collection);
The triangulation is a parallel::shared::Triangulation<dim>.

My C++ is not as good as it needs to be. It appears as if the exception (below) means that HP is not implemented for a parallel::shared::Triangulation<dim>. Is my interpretation correct ?

Is parallel::distributed::Triangulation<dim> implemented ?

Thanks, beforehand.

Pete Griffin

=====================================================================

----------------------------------------------------
Exception on processing: 

--------------------------------------------------------
An error occurred in line <2733> of file </home/pgriffin/Documents/Zipstore2/dealii-8.4.1-PETSc/source/hp/dof_handler.cc> in function
    void dealii::hp::DoFHandler<dim, spacedim>::distribute_dofs(const dealii::hp::FECollection<dim, spacedim>&) [with int dim = 3; int spacedim = 3]
The violated condition was: 
    false
The name and call sequence of the exception was:
    ExcNotImplemented()

=====================================================================

 The code related to the  assertion at line <2733> of file dof_handler.cc, is as follows:

  template<int dim, int spacedim>
  void DoFHandler<dim,spacedim>::distribute_dofs (const hp::FECollection<dim,spacedim> &ff)
  {
    .
    .
    .
    if (dynamic_cast<const parallel::shared::Triangulation< dim, spacedim >*>
        (&this->get_triangulation())
        == 0)
      {
        number_cache.locally_owned_dofs
          = IndexSet (number_cache.n_global_dofs);
        number_cache.locally_owned_dofs.add_range (0,
                                                   number_cache.n_global_dofs);
        Assert (number_cache.n_global_dofs < std::numeric_limits<unsigned int>::max (),
                ExcMessage ("Global number of degrees of freedom is too large."));
        number_cache.n_locally_owned_dofs_per_processor
          = std::vector<types::global_dof_index> (1,
                                                  (types::global_dof_index) number_cache.n_global_dofs);
      }
    else
      {
        AssertThrow(false, ExcNotImplemented() );
        //number_cache.locally_owned_dofs = dealii::DoFTools::locally_owned_dofs_with_subdomain(this,tria->locally_owned_subdomain() );
        //TODO: update n_locally_owned_dofs_per_processor as well
      }
    .
    .
    .
  }

Wolfgang Bangerth

unread,
Jul 31, 2016, 2:53:03 PM7/31/16
to dea...@googlegroups.com
On 07/31/2016 12:06 PM, Pete Griffin wrote:
>
> I get an error from an assertion in the call to:
> dof_handler.distribute_dofs (fe_collection);
> The triangulation is a parallel::shared::Triangulation<dim>.
>
> My C++ is not as good as it needs to be. It appears as if the exception
> (below) means that HP is not implemented for a
> parallel::shared::Triangulation<dim>. Is my interpretation correct ?
>
> Is parallel::distributed::Triangulation<dim> implemented ?

Pete -- correct, hp finite elements are not implemented for either of the two
parallel triangulations. I.e., they can currently only be used for sequential
computations. This is pretty high on our list to get implemented in parallel.

Best
W.


--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@math.tamu.edu
www: http://www.math.tamu.edu/~bangerth/

Pete Griffin

unread,
Jul 31, 2016, 4:05:58 PM7/31/16
to deal.II User Group
Thanks, Wolfgang

Pete Griffin
Reply all
Reply to author
Forward
0 new messages