// only one regulator method at time, i.e. fixed & flux, thermo & elastic
// regulator manages lambda variables, creates new ones when requested with dimensions and zero ics (map of tag to lambda)
// regulator keeps track of which lambda are being used, unused lambdas deleted (map of tag to bool), all tags set to unused on start of initialization
// method requests needed lambda from regulator
// method sets up all needed linear solvers, null linear solver does nothing
// regulator adds nodes to fixed or fluxed lists it owns, based on localization and type
// method gets lists of fixed nodes and fluxed nodes
// method lumps fluxed lambdas and truncates fixed lambdas based on single localized bool in regulator
// inherited methods should be fixed, fluxed, combined
fix_modify AtC transfer <physics_type> control max_iterations <max_iterations>\n
- max_iterations (int) = maximum number of iterations that will be used by iterative matrix solvers\n
fix_modify AtC transfer <physics_type> control tolerance <tolerance> \n
- tolerance (float) = relative tolerance to which matrix equations will be solved\n
\section examples
<TT> fix_modify AtC control thermal max_iterations 10 </TT> \n
<TT> fix_modify AtC control momentum tolerance 1.e-5 </TT> \n
\section description
Sets the numerical parameters for the matrix solvers used in the specified control algorithm. Many solution approaches require iterative solvers, and these methods enable users to provide the maximum number of iterations and the relative tolerance.
\section restrictions
only for be used with specific controllers :
thermal, momentum \n
They are ignored if a lumped solution is requested
\section related
\section default
max_iterations is the number of rows in the matrix\n
tolerance is 1.e-10
*/
intargIndex=0;
if(strcmp(arg[argIndex],"max_iterations")==0){
argIndex++;
maxIterations_=atoi(arg[argIndex]);
if(maxIterations_<1){
throwATC_Error("Bad maximum iteration count");
}
needReset_=true;
foundMatch=true;
}
elseif(strcmp(arg[argIndex],"tolerance")==0){
argIndex++;
tolerance_=atof(arg[argIndex]);
if(tolerance_<0.){
throwATC_Error("Bad tolerance value");
}
needReset_=true;
foundMatch=true;
}
/*! \page man_localized_lambda fix_modify AtC control localized_lambda
\section syntax
fix_modify AtC control localized_lambda <on|off>
\section examples
<TT> fix_modify atc control localized_lambda on </TT> \n
\section description
Turns on localization algorithms for control algorithms to restrict the influence of FE coupling or boundary conditions to a region near the boundary of the MD region. Control algorithms will not affect atoms in elements not possessing faces on the boundary of the region. Flux-based control is localized via row-sum lumping while quantity control is done by solving a truncated matrix equation.