PRISMS-PF  v2.1
FloodFiller< dim, degree > Class Template Reference

#include <FloodFiller.h>

Public Member Functions

 FloodFiller (dealii::FESystem< dim > &_fe, dealii::QGaussLobatto< dim > _quadrature)
 
void calcGrainSets (dealii::FESystem< dim > &fe, dealii::DoFHandler< dim > &dof_handler, vectorType *solution_field, double threshold_lower, double threshold_upper, unsigned int order_parameter_index, std::vector< GrainSet< dim >> &grain_sets)
 

Protected Member Functions

template<typename T >
void recursiveFloodFill (T di, T di_end, vectorType *solution_field, double threshold_lower, double threshold_upper, unsigned int &grain_index, std::vector< GrainSet< dim >> &grain_sets, bool &grain_assigned)
 
void createGlobalGrainSetList (std::vector< GrainSet< dim >> &grain_sets) const
 
void mergeSplitGrains (std::vector< GrainSet< dim >> &grain_sets) const
 

Protected Attributes

dealii::QGaussLobatto< dim > quadrature
 
const unsigned int num_quad_points
 
const unsigned int dofs_per_cell
 
dealii::FESystem< dim > * fe
 

Detailed Description

template<int dim, int degree>
class FloodFiller< dim, degree >

This class uses a recursive flood filling algorithm to find connected bodies in a field, given a threshold. The MPI communication methods are similar to those in parallelNucleationList.

Definition at line 78 of file FloodFiller.h.

Constructor & Destructor Documentation

◆ FloodFiller()

FloodFiller ( dealii::FESystem< dim > &  _fe,
dealii::QGaussLobatto< dim >  _quadrature 
)
inline

Constructor.

Definition at line 84 of file FloodFiller.h.

Member Function Documentation

◆ calcGrainSets()

void calcGrainSets ( dealii::FESystem< dim > &  fe,
dealii::DoFHandler< dim > &  dof_handler,
vectorType solution_field,
double  threshold_lower,
double  threshold_upper,
unsigned int  order_parameter_index,
std::vector< GrainSet< dim >> &  grain_sets 
)

The primary external interface. This method takes in information about the mesh/field and outputs a vector of GrainSet objects.

Definition at line 5 of file FloodFiller.cc.

◆ createGlobalGrainSetList()

void createGlobalGrainSetList ( std::vector< GrainSet< dim >> &  grain_sets) const
protected

The method to merge the grain sets from all the processors.

Definition at line 119 of file FloodFiller.cc.

◆ mergeSplitGrains()

void mergeSplitGrains ( std::vector< GrainSet< dim >> &  grain_sets) const
protected

Checks to see if grains found on different processors are parts of a larger grain. If so, it merges the grain_sets entries.

Definition at line 228 of file FloodFiller.cc.

◆ recursiveFloodFill()

void recursiveFloodFill ( di,
di_end,
vectorType solution_field,
double  threshold_lower,
double  threshold_upper,
unsigned int &  grain_index,
std::vector< GrainSet< dim >> &  grain_sets,
bool &  grain_assigned 
)
protected

The actual recursive flood fill method.

Definition at line 60 of file FloodFiller.cc.

Member Data Documentation

◆ dofs_per_cell

const unsigned int dofs_per_cell
protected

The number of degrees of freedom per cell.

Definition at line 123 of file FloodFiller.h.

◆ fe

dealii::FESystem<dim>* fe
protected

The deal.II finite element object, set in the constructor.

Definition at line 128 of file FloodFiller.h.

◆ num_quad_points

const unsigned int num_quad_points
protected

The number of quadrature points per cell.

Definition at line 118 of file FloodFiller.h.

◆ quadrature

dealii::QGaussLobatto<dim> quadrature
protected

The quadrature used to calculate the element-wise value of the solution field.

Definition at line 113 of file FloodFiller.h.


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