Reduced Lagrange Multipliers
 
Loading...
Searching...
No Matches
ImmersedRepartitioner< dim, spacedim > Class Template Reference

A class implementing a repartitioning policy for immersed triangulations. More...

#include <immersed_repartitioner.h>

Inheritance diagram for ImmersedRepartitioner< dim, spacedim >:
RepartitioningPolicyTools::Base< dim, dim > EnableObserverPointer

Public Member Functions

 ImmersedRepartitioner (const Triangulation< spacedim > &tria_background)
 Constructor for the ImmersedRepartitioner class.
 
virtual LinearAlgebra::distributed::Vector< double > partition (const Triangulation< dim, spacedim > &tria_immersed) const override
 Repartition the given immersed triangulation.
 
- Public Member Functions inherited from RepartitioningPolicyTools::Base< dim, dim >
virtual ~Base ()=default
 
void serialize (Archive &ar, const unsigned int version)
 
unsigned int n_subscriptions () const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
- Public Member Functions inherited from EnableObserverPointer
 EnableObserverPointer ()
 
 EnableObserverPointer (const EnableObserverPointer &)
 
 EnableObserverPointer (EnableObserverPointer &&) noexcept
 
virtual ~EnableObserverPointer ()
 
EnableObserverPointeroperator= (const EnableObserverPointer &)
 
EnableObserverPointeroperator= (EnableObserverPointer &&) noexcept
 
void serialize (Archive &ar, const unsigned int version)
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 

Private Attributes

const Triangulation< spacedim > & tria_background
 A reference to the background triangulation used for repartitioning.
 
const MappingQ1< spacedim > mapping
 A mapping object for the background triangulation.
 

Additional Inherited Members

- Static Public Member Functions inherited from RepartitioningPolicyTools::Base< dim, dim >
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Static Public Member Functions inherited from EnableObserverPointer
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

template<int dim, int spacedim = dim>
class ImmersedRepartitioner< dim, spacedim >

A class implementing a repartitioning policy for immersed triangulations.

This class provides functionality to repartition an immersed triangulation based on a background triangulation. It inherits from the RepartitioningPolicyTools::Base class and overrides the partition method. The rank of the immersed cell is assigned to the processor that own the background cell where the center of the immersed cell is located.

Template Parameters
dimThe dimension of the immersed triangulation.
spacedimThe dimension of the space in which the triangulation is embedded. Defaults to the same value as dim.

Definition at line 47 of file immersed_repartitioner.h.

Constructor & Destructor Documentation

◆ ImmersedRepartitioner()

template<int dim, int spacedim>
ImmersedRepartitioner< dim, spacedim >::ImmersedRepartitioner ( const Triangulation< spacedim > & tria_background)

Constructor for the ImmersedRepartitioner class.

Parameters
tria_backgroundA reference to the background triangulation used for repartitioning.

Definition at line 22 of file immersed_repartitioner.cc.

References tria_background.

Member Function Documentation

◆ partition()

template<int dim, int spacedim>
LinearAlgebra::distributed::Vector< double > ImmersedRepartitioner< dim, spacedim >::partition ( const Triangulation< dim, spacedim > & tria_immersed) const
overridevirtual

Repartition the given immersed triangulation.

This method computes a new partitioning for the immersed triangulation based on the background triangulation provided during construction.

Parameters
tria_immersedA reference to the immersed triangulation to be repartitioned.
Returns
A distributed vector containing the partitioning information.

Implements RepartitioningPolicyTools::Base< dim, dim >.

Definition at line 29 of file immersed_repartitioner.cc.

References Triangulation< int dim, int spacedim >::active_cell_iterators(), mapping, VectorTools::EvaluationFlags::min, VectorTools::point_values(), Utilities::MPI::this_mpi_process(), and tria_background.

Member Data Documentation

◆ mapping

template<int dim, int spacedim = dim>
const MappingQ1<spacedim> ImmersedRepartitioner< dim, spacedim >::mapping
private

A mapping object for the background triangulation.

Definition at line 80 of file immersed_repartitioner.h.

Referenced by partition().

◆ tria_background

template<int dim, int spacedim = dim>
const Triangulation<spacedim>& ImmersedRepartitioner< dim, spacedim >::tria_background
private

A reference to the background triangulation used for repartitioning.

Definition at line 75 of file immersed_repartitioner.h.

Referenced by ImmersedRepartitioner(), and partition().


The documentation for this class was generated from the following files: