SPHinXsys  alpha version
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SPH::MultilevelCellLinkedList Class Reference

Defining a multilevel level set for a complex region. More...

#include <level_set.h>

Inherits SPH::MultilevelMesh< BaseCellLinkedList, CellLinkedList, RefinedMesh< CellLinkedList > >.

Public Member Functions

 MultilevelCellLinkedList (BoundingBox tentative_bounds, Real reference_grid_spacing, size_t total_levels, RealBody &real_body, SPHAdaptation &sph_adaptation)
 
virtual void assignBaseParticles (BaseParticles *base_particles) override
 
virtual void UpdateCellLists () override
 
void insertACellLinkedParticleIndex (size_t particle_index, const Vecd &particle_position) override
 
void InsertACellLinkedListDataEntry (size_t particle_index, const Vecd &particle_position) override
 
virtual ListData findNearestListDataEntry (const Vecd &position) override
 
virtual void computingSequence (StdLargeVec< size_t > &sequence) override
 
virtual void tagBodyPartByCell (CellLists &cell_lists, std::function< bool(Vecd, Real)> &check_included) override
 
virtual void tagBodyDomainBoundingCells (StdVec< CellLists > &cell_lists, BoundingBox &body_domain_bounds, int axis) override
 
virtual void tagMirrorBoundingCells (CellLists &cell_lists, BoundingBox &body_domain_bounds, int axis, bool positive) override
 
- Public Member Functions inherited from SPH::MultilevelMesh< BaseCellLinkedList, CellLinkedList, RefinedMesh< CellLinkedList > >
 MultilevelMesh (BoundingBox tentative_bounds, Real reference_spacing, size_t total_levels, Args &&...args)
 
StdVec< CellLinkedList *> getMeshLevels ()
 
void writeMeshFieldToPlt (std::ofstream &output_file) override
 
- Public Member Functions inherited from SPH::BaseCellLinkedList
 BaseCellLinkedList (RealBody &real_body, SPHAdaptation &sph_adaptation)
 
- Public Member Functions inherited from SPH::BaseMeshField
 BaseMeshField (const std::string &name)
 
std::string Name ()
 

Protected Member Functions

virtual void updateSplitCellLists (SplitCellLists &split_cell_lists) override
 
size_t getMeshLevel (Real particle_cutoff_radius)
 
- Protected Member Functions inherited from SPH::BaseCellLinkedList
virtual void clearSplitCellLists (SplitCellLists &split_cell_lists)
 

Protected Attributes

StdLargeVec< Real > & h_ratio_
 
- Protected Attributes inherited from SPH::MultilevelMesh< BaseCellLinkedList, CellLinkedList, RefinedMesh< CellLinkedList > >
size_t total_levels_
 
StdVec< CellLinkedList *> mesh_levels_
 
- Protected Attributes inherited from SPH::BaseCellLinkedList
RealBodyreal_body_
 
Kernelkernel_
 
BaseParticlesbase_particles_
 
- Protected Attributes inherited from SPH::BaseMeshField
std::string name_
 

Detailed Description

Defining a multilevel level set for a complex region.

Defining a multilevel mesh cell linked list for a body for multi-resolution particle configuration.

Member Function Documentation

◆ assignBaseParticles()

void SPH::MultilevelCellLinkedList::assignBaseParticles ( BaseParticles base_particles)
overridevirtual

Assign base particles to the mesh cell linked list, and is important because particles are not defined in the constructor.

Implements SPH::BaseCellLinkedList.

◆ computingSequence()

virtual void SPH::MultilevelCellLinkedList::computingSequence ( StdLargeVec< size_t > &  sequence)
inlineoverridevirtual

computing the sequence which indicate the order of sorted particle data

Implements SPH::BaseCellLinkedList.

◆ findNearestListDataEntry()

virtual ListData SPH::MultilevelCellLinkedList::findNearestListDataEntry ( const Vecd &  position)
inlineoverridevirtual

find the nearest list data entry

Implements SPH::BaseCellLinkedList.

◆ getMeshLevel()

size_t SPH::MultilevelCellLinkedList::getMeshLevel ( Real  particle_cutoff_radius)
inlineprotected

determine mesh level from particle cutoff radius

◆ InsertACellLinkedListDataEntry()

void SPH::MultilevelCellLinkedList::InsertACellLinkedListDataEntry ( size_t  particle_index,
const Vecd &  particle_position 
)
overridevirtual

Insert a cell-linked_list entry of the index and particle position pair.

Implements SPH::BaseCellLinkedList.

◆ insertACellLinkedParticleIndex()

void SPH::MultilevelCellLinkedList::insertACellLinkedParticleIndex ( size_t  particle_index,
const Vecd &  particle_position 
)
overridevirtual

Insert a cell-linked_list entry to the concurrent index list.

Implements SPH::BaseCellLinkedList.

◆ tagBodyDomainBoundingCells()

virtual void SPH::MultilevelCellLinkedList::tagBodyDomainBoundingCells ( StdVec< CellLists > &  cell_lists,
BoundingBox body_domain_bounds,
int  axis 
)
inlineoverridevirtual

Tag domain bounding cells in an axis direction, called by domain bounding classes

Implements SPH::BaseCellLinkedList.

◆ tagBodyPartByCell()

void SPH::MultilevelCellLinkedList::tagBodyPartByCell ( CellLists cell_lists,
std::function< bool(Vecd, Real)> &  check_included 
)
overridevirtual

Tag body part by cell, call by body part

Implements SPH::BaseCellLinkedList.

◆ tagMirrorBoundingCells()

virtual void SPH::MultilevelCellLinkedList::tagMirrorBoundingCells ( CellLists cell_lists,
BoundingBox body_domain_bounds,
int  axis,
bool  positive 
)
inlineoverridevirtual

Tag mirror bounding cells, called by mirror boundary condition

Implements SPH::BaseCellLinkedList.

◆ UpdateCellLists()

void SPH::MultilevelCellLinkedList::UpdateCellLists ( )
overridevirtual

update the cell lists

Implements SPH::BaseCellLinkedList.

◆ updateSplitCellLists()

virtual void SPH::MultilevelCellLinkedList::updateSplitCellLists ( SplitCellLists split_cell_lists)
inlineoverrideprotectedvirtual

update split particle list in this mesh

Implements SPH::BaseCellLinkedList.


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