dynLattice
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
PBCGroupInputModule Class Reference

Module for automatic periodic boundary condition node group generation. More...

#include "PBCGroupInputModule.h"

Inheritance diagram for PBCGroupInputModule:
Inheritance graph
[legend]
Collaboration diagram for PBCGroupInputModule:
Collaboration graph
[legend]

Public Types

Type definitions
typedef PBCGroupInputModule Self
 Self type alias.
 
typedef GroupInputModule Super
 Base class type alias.
 

Public Member Functions

 PBCGroupInputModule (const String &name="pbcGroupInput")
 Constructor.
 
virtual Status init (const Properties &conf, const Properties &props, const Properties &globdat) override
 Initialize PBC node group generation.
 
- Public Member Functions inherited from GroupInputModule
 GroupInputModule (const String &name="groupInput")
 Constructor.
 

Static Public Member Functions

static Ref< Module > makeNew (const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
 Factory method for creating new instances.
 
static void declare ()
 Register module type with factory.
 
- Static Public Member Functions inherited from GroupInputModule
static Ref< Module > makeNew (const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
 Factory method for creating new GroupInputModule instances.
 
static void declare ()
 Register GroupInputModule type with ModuleFactory.
 

Static Public Attributes

Property identifiers
static const char * TYPE_NAME = "PBCGroupInput"
 Module type name.
 
static const char * EDGES [6]
 Edge group names (xmin, xmax, etc.)
 
static const char * CORNERS [4]
 Corner group names.
 
static const char * DUPEDNODES_PROP = "duplicatedNodes"
 Duplicated nodes property name.
 
static const char * NGROUPS_PROP = "groupSettings"
 Node groups property name.
 
- Static Public Attributes inherited from GroupInputModule
static const char * TYPE_NAME = "GroupInput"
 Module type name.
 
static const char * NODE_GROUPS = "nodeGroups"
 Node groups property.
 
static const char * ELEM_GROUPS = "elemGroups"
 Element groups property.
 

Protected Member Functions

virtual ~PBCGroupInputModule ()
 Protected destructor.
 
void prepareProps_ (const Properties &myProps) const
 Prepare properties for PBC group generation.
 
void sortBoundaryNodes_ (const IdxVector &islaves, const IdxVector &imasters, const NodeSet &nodes, const Properties &globdat, const idx_t ix) const
 Sort boundary nodes into master/slave pairs.
 
- Protected Member Functions inherited from GroupInputModule
virtual ~GroupInputModule ()
 

Protected Attributes

Configuration parameters
idx_t rank_
 Spatial dimension of the domain.
 
double small_
 Tolerance for coordinate comparison.
 
bool edges_
 Generate edge node groups.
 
bool corners_
 Generate corner node groups.
 
Properties groupSettings_
 Group configuration settings.
 
String dupedNodeGroup_
 Name of duplicated node group.
 

Detailed Description

Extends GroupInputModule to automatically create node groups for periodic boundary conditions. Identifies boundary nodes on domain faces, edges, and corners based on coordinate analysis and generates appropriate node groups for PBC implementation.

Member Typedef Documentation

◆ Self

◆ Super

Constructor & Destructor Documentation

◆ PBCGroupInputModule()

PBCGroupInputModule::PBCGroupInputModule ( const String &  name = "pbcGroupInput")
explicit
Parameters
nameModule name (default: "pbcGroupInput")

◆ ~PBCGroupInputModule()

PBCGroupInputModule::~PBCGroupInputModule ( )
protectedvirtual

Member Function Documentation

◆ declare()

void PBCGroupInputModule::declare ( )
static

◆ init()

Module::Status PBCGroupInputModule::init ( const Properties &  conf,
const Properties &  props,
const Properties &  globdat 
)
overridevirtual
Parameters
confActually used configuration properties (output)
propsUser-specified module properties
globdatGlobal data container
Returns
Module status

Reimplemented from GroupInputModule.

◆ makeNew()

Ref< Module > PBCGroupInputModule::makeNew ( const String &  name,
const Properties &  conf,
const Properties &  props,
const Properties &  globdat 
)
static
Parameters
nameModule name
confConfiguration properties (output)
propsUser properties
globdatGlobal data container
Returns
New module instance

◆ prepareProps_()

void PBCGroupInputModule::prepareProps_ ( const Properties &  myProps) const
protected
Parameters
myPropsModule properties to configure

◆ sortBoundaryNodes_()

void PBCGroupInputModule::sortBoundaryNodes_ ( const IdxVector &  islaves,
const IdxVector &  imasters,
const NodeSet &  nodes,
const Properties &  globdat,
const idx_t  ix 
) const
protected
Parameters
islavesSlave node indices
imastersMaster node indices
nodesNode set
globdatGlobal data container
ixCoordinate direction index

Member Data Documentation

◆ CORNERS

const char * PBCGroupInputModule::CORNERS
static
Initial value:
= {"corner0", "cornerx",
"cornery", "cornerz"}

◆ corners_

bool PBCGroupInputModule::corners_
protected

◆ dupedNodeGroup_

String PBCGroupInputModule::dupedNodeGroup_
protected

◆ DUPEDNODES_PROP

const char * PBCGroupInputModule::DUPEDNODES_PROP = "duplicatedNodes"
static

◆ EDGES

const char * PBCGroupInputModule::EDGES
static
Initial value:
= {"xmin", "xmax", "ymin",
"ymax", "zmin", "zmax"}

◆ edges_

bool PBCGroupInputModule::edges_
protected

◆ groupSettings_

Properties PBCGroupInputModule::groupSettings_
protected

◆ NGROUPS_PROP

const char * PBCGroupInputModule::NGROUPS_PROP = "groupSettings"
static

◆ rank_

idx_t PBCGroupInputModule::rank_
protected

◆ small_

double PBCGroupInputModule::small_
protected

◆ TYPE_NAME

const char * PBCGroupInputModule::TYPE_NAME = "PBCGroupInput"
static