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

Abstract class for mesh cell linked list. More...

#include <cell_linked_list.h>

Inherits SPH::BaseMeshField.

Inherited by SPH::MultilevelMesh< BaseCellLinkedList, CellLinkedList, RefinedMesh< CellLinkedList > >, and SPH::CellLinkedList.

Public Member Functions

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

Protected Member Functions

virtual void clearSplitCellLists (SplitCellLists &split_cell_lists)
 
virtual void updateSplitCellLists (SplitCellLists &split_cell_lists)=0
 

Protected Attributes

RealBodyreal_body_
 
Kernelkernel_
 
BaseParticlesbase_particles_
 
- Protected Attributes inherited from SPH::BaseMeshField
std::string name_
 

Detailed Description

Abstract class for mesh cell linked list.

Constructor & Destructor Documentation

◆ BaseCellLinkedList()

SPH::BaseCellLinkedList::BaseCellLinkedList ( RealBody real_body,
SPHAdaptation sph_adaptation 
)

The buffer size 2 used to expand computational domain for particle searching.

Member Function Documentation

◆ assignBaseParticles()

virtual void SPH::BaseCellLinkedList::assignBaseParticles ( BaseParticles base_particles)
pure virtual

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

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ clearSplitCellLists()

void SPH::BaseCellLinkedList::clearSplitCellLists ( SplitCellLists split_cell_lists)
protectedvirtual

clear split cell lists in this mesh

◆ computingSequence()

virtual void SPH::BaseCellLinkedList::computingSequence ( StdLargeVec< size_t > &  sequence)
pure virtual

computing the sequence which indicate the order of sorted particle data

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ findNearestListDataEntry()

virtual ListData SPH::BaseCellLinkedList::findNearestListDataEntry ( const Vecd &  position)
pure virtual

find the nearest list data entry

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ InsertACellLinkedListDataEntry()

virtual void SPH::BaseCellLinkedList::InsertACellLinkedListDataEntry ( size_t  particle_index,
const Vecd &  particle_position 
)
pure virtual

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

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ insertACellLinkedParticleIndex()

virtual void SPH::BaseCellLinkedList::insertACellLinkedParticleIndex ( size_t  particle_index,
const Vecd &  particle_position 
)
pure virtual

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

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ tagBodyDomainBoundingCells()

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

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

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ tagBodyPartByCell()

virtual void SPH::BaseCellLinkedList::tagBodyPartByCell ( CellLists cell_lists,
std::function< bool(Vecd, Real)> &  check_included 
)
pure virtual

Tag body part by cell, call by body part

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ tagMirrorBoundingCells()

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

Tag mirror bounding cells, called by mirror boundary condition

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ UpdateCellLists()

virtual void SPH::BaseCellLinkedList::UpdateCellLists ( )
pure virtual

update the cell lists

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.

◆ updateSplitCellLists()

virtual void SPH::BaseCellLinkedList::updateSplitCellLists ( SplitCellLists split_cell_lists)
protectedpure virtual

update split particle list in this mesh

Implemented in SPH::MultilevelCellLinkedList, and SPH::CellLinkedList.


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