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

Model for applying Dirichlet boundary conditions with displacement control. More...

#include "DirichletModel.h"

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

Public Types

enum  Method { RATE , INCREMENT , LOADSCALE }
 Displacement control methods. More...
 

Public Member Functions

 DirichletModel (const String &name="dirichlet")
 Constructor.
 
virtual void configure (const Properties &props, const Properties &globdat) override
 Configure Dirichlet boundary conditions from properties.
 
virtual void getConfig (const Properties &conf, const Properties &globdat) const override
 Get current configuration.
 
virtual bool takeAction (const String &action, const Properties &params, const Properties &globdat) override
 Handle model actions (INIT, GET_CONSTRAINTS, ADVANCE, etc.)
 

Static Public Member Functions

static Ref< Model > makeNew (const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
 Factory method for creating new DirichletModel instances.
 
static void declare ()
 Register DirichletModel type with ModelFactory.
 

Static Public Attributes

Property identifiers
static const char * TYPE_NAME = "Dirichlet"
 
static const char * MAX_DISP_PROP = "maxDisp"
 Maximum displacement value.
 
static const char * DISP_INCR_PROP = "dispIncr"
 Displacement increment.
 
static const char * DISP_RATE_PROP = "dispRate"
 Displacement rate.
 
static const char * INIT_DISP_PROP = "initDisp"
 Initial displacement.
 
static const char * NODES_PROP = "nodeGroups"
 Node groups.
 
static const char * DOF_PROP = "dofs"
 Degree of freedom types.
 
static const char * FACTORS_PROP = "factors"
 Displacement factors.
 
static const char * LOADED_PROP = "loaded"
 Loaded node group index.
 

Protected Member Functions

virtual ~DirichletModel ()
 
void init_ (const Properties &globdat)
 Initialize model state and DOF mappings.
 
void advance_ (const Properties &globdat)
 Advance to next time step.
 
void applyConstraints_ (const Properties &params, const Properties &globdat)
 Apply displacement constraints to system.
 
void checkCommit_ (const Properties &params, const Properties &globdat)
 Check if current state should be committed.
 
void commit_ (const Properties &params, const Properties &globdat)
 Commit current displacement state.
 
void setDT_ (const Properties &params)
 Set time step size for displacement control.
 

Detailed Description

Implements displacement-based boundary conditions using rate, increment, or load scale methods. Supports multiple node groups with different displacement factors and DOF types.

Member Enumeration Documentation

◆ Method

Enumerator
RATE 

Displacement rate control.

INCREMENT 

Displacement increment control.

LOADSCALE 

Load scale factor control.

Constructor & Destructor Documentation

◆ DirichletModel()

DirichletModel::DirichletModel ( const String &  name = "dirichlet")
explicit
Parameters
nameModel name (default: "dirichlet")

◆ ~DirichletModel()

DirichletModel::~DirichletModel ( )
protectedvirtual

Member Function Documentation

◆ advance_()

void DirichletModel::advance_ ( const Properties &  globdat)
protected
Parameters
globdatGlobal data container

Updates displacement scale factor and logs progress

◆ applyConstraints_()

void DirichletModel::applyConstraints_ ( const Properties &  params,
const Properties &  globdat 
)
protected
Parameters
paramsAction parameters
globdatGlobal data container

Iterates through node groups and applies scaled displacement constraints

◆ checkCommit_()

void DirichletModel::checkCommit_ ( const Properties &  params,
const Properties &  globdat 
)
protected
Parameters
paramsAction parameters containing termination flags
globdatGlobal data container

Terminates computation if displacement exceeds maximum value

◆ commit_()

void DirichletModel::commit_ ( const Properties &  params,
const Properties &  globdat 
)
protected
Parameters
paramsAction parameters
globdatGlobal data container

Stores converged displacement scale factor

◆ configure()

void DirichletModel::configure ( const Properties &  props,
const Properties &  globdat 
)
overridevirtual
Parameters
propsUser-specified configuration properties
globdatGlobal data container

◆ declare()

void DirichletModel::declare ( )
static

◆ getConfig()

void DirichletModel::getConfig ( const Properties &  conf,
const Properties &  globdat 
) const
overridevirtual
Parameters
confActually used configuration properties (output)
globdatGlobal data container

◆ init_()

void DirichletModel::init_ ( const Properties &  globdat)
protected
Parameters
globdatGlobal data container with node set and DOF space

◆ makeNew()

Ref< Model > DirichletModel::makeNew ( const String &  name,
const Properties &  conf,
const Properties &  props,
const Properties &  globdat 
)
static
Parameters
nameModel name
confActually used configuration properties (output)
propsUser-specified model properties
globdatGlobal data container
Returns
Reference to new DirichletModel instance

◆ setDT_()

void DirichletModel::setDT_ ( const Properties &  params)
protected
Parameters
paramsParameters containing step size information

Calculates displacement increment based on control method

◆ takeAction()

bool DirichletModel::takeAction ( const String &  action,
const Properties &  params,
const Properties &  globdat 
)
overridevirtual
Parameters
actionAction name to execute
paramsAction parameters
globdatGlobal data container
Returns
true if action was handled

Member Data Documentation

◆ DISP_INCR_PROP

const char * DirichletModel::DISP_INCR_PROP = "dispIncr"
static

◆ DISP_RATE_PROP

const char * DirichletModel::DISP_RATE_PROP = "dispRate"
static

◆ DOF_PROP

const char * DirichletModel::DOF_PROP = "dofs"
static

◆ FACTORS_PROP

const char * DirichletModel::FACTORS_PROP = "factors"
static

◆ INIT_DISP_PROP

const char * DirichletModel::INIT_DISP_PROP = "initDisp"
static

◆ LOADED_PROP

const char * DirichletModel::LOADED_PROP = "loaded"
static

◆ MAX_DISP_PROP

const char * DirichletModel::MAX_DISP_PROP = "maxDisp"
static

◆ NODES_PROP

const char * DirichletModel::NODES_PROP = "nodeGroups"
static

◆ TYPE_NAME

const char * DirichletModel::TYPE_NAME = "Dirichlet"
static