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

Lenient nonlinear solver with relaxed convergence criteria. More...

#include "LenientNonlinModule.h"

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

Public Member Functions

 LenientNonlinModule (const String &name="lenient")
 Constructor.
 
virtual Status init (const Properties &conf, const Properties &props, const Properties &globdat) override
 Initialize the module.
 
virtual Status run (const Properties &globdat) override
 Run the lenient nonlinear solver.
 
virtual void configure (const Properties &props, const Properties &globdat) override
 Configure module parameters.
 
virtual void getConfig (const Properties &conf, const Properties &globdat) const override
 Get current configuration.
 

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 LenientNonlinModule instances.
 
static void declare ()
 Register LenientNonlinModule type with ModuleFactory.
 

Static Public Attributes

Property identifiers
static const char * TYPE_NAME = "LNonlin"
 Module type name.
 

Protected Member Functions

virtual ~LenientNonlinModule ()
 Protected destructor.
 

Detailed Description

This module extends the standard NonlinModule to handle cases where strict convergence cannot be achieved within the maximum iteration limit. When a "no convergence" exception is thrown and the maximum number of iterations has been reached, the module accepts the current solution and continues the analysis. This is particularly useful for:

The module maintains all standard nonlinear solver functionality while providing the flexibility to proceed with non-converged solutions when necessary.

Constructor & Destructor Documentation

◆ LenientNonlinModule()

LenientNonlinModule::LenientNonlinModule ( const String &  name = "lenient")
explicit
Parameters
nameModule name (default: "lenient")

◆ ~LenientNonlinModule()

LenientNonlinModule::~LenientNonlinModule ( )
protectedvirtual

Member Function Documentation

◆ configure()

void LenientNonlinModule::configure ( const Properties &  props,
const Properties &  globdat 
)
overridevirtual
Parameters
propsConfiguration properties
globdatGlobal data container

Delegates to base class configuration

◆ declare()

void LenientNonlinModule::declare ( )
static

◆ getConfig()

void LenientNonlinModule::getConfig ( const Properties &  conf,
const Properties &  globdat 
) const
overridevirtual
Parameters
confConfiguration properties (output)
globdatGlobal data container

Delegates to base class configuration retrieval

◆ init()

Module::Status LenientNonlinModule::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

Initializes the base NonlinModule and retrieves the maximum iteration limit for lenient convergence behavior

◆ makeNew()

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

◆ run()

Module::Status LenientNonlinModule::run ( const Properties &  globdat)
overridevirtual
Parameters
globdatGlobal data container
Returns
Module status

Executes the nonlinear solution process with lenient convergence criteria. If convergence fails after maxIter_ iterations, accepts the current solution and continues

Member Data Documentation

◆ TYPE_NAME

const char * LenientNonlinModule::TYPE_NAME = "LNonlin"
static