/*! \page man_filter_scale fix_modify AtC transfer filter scale
\section syntax
fix_modify AtC transfer filter scale <scale> \n
- scale (real) = characteristic time scale of the filter \n
\section examples
<TT> fix_modify AtC transfer filter scale 10.0 </TT> \n
\section description
Filters the MD dynamics to construct a more appropriate continuous field. Equilibrating first filters the time derivatives without changing the dynamics to provide a better initial condition to the filtered dynamics
\section restrictions
only for be used with specific transfers:
thermal, two_temperature
\section related
\ref man_time_filter
\section default
0.
*/
if(strcmp(arg[0],"scale")==0){
filterScale_=atof(arg[1]);
if(filterScale_<=0.)
throwATC_Error(0,"Bad filtering time scale");
foundMatch=true;
}
// time filtering activation switch
/*! \page man_time_filter fix_modify AtC transfer filter
\section syntax
fix_modify AtC transfer filter <on | off | equilibrate> \n
- on | off (keyword) = turns filter on or off\n
- equilibrate = runs dynamics without filtering but initializes filtered quantities
\section examples
<TT> fix_modify atc transfer filter on </TT> \n
\section description
Filters the MD dynamics to construct a more appropriate continuous field. Equilibrating first filters the time derivatives without changing the dynamics to provide a better initial condition to the filtered dynamics
\section restrictions
only for be used with specific transfers:
thermal, two_temperature
\section related
\ref man_filter_scale \n
\ref man_equilibrium_start
\section default
off
*/
elseif(strcmp(arg[0],"on")==0){
if(filterScale_<=0.)
throwATC_Error(0,"Filtering time scale not initialized");
useFilter_=true;
if(!equilibrateFilter_){
needReset_=true;
endEquilibrate_=false;
}
else{
endEquilibrate_=true;
}
equilibrateFilter_=false;
foundMatch=true;
}
elseif(strcmp(arg[0],"off")==0){
useFilter_=false;
equilibrateFilter_=false;
endEquilibrate_=false;
needReset_=true;
foundMatch=true;
}
elseif(strcmp(arg[0],"equilibrate")==0){
if(filterScale_<=0.)
throwATC_Error(0,"Filtering time scale not initialized");
equilibrateFilter_=true;
endEquilibrate_=false;
useFilter_=false;
needReset_=true;
foundMatch=true;
}
/** Example command for to set time filter scale:
fix_modify atc transfer filter type step*/
elseif(strcmp(arg[0],"type")==0){
if(strcmp(arg[1],"exponential")==0){
filterType_=EXPONENTIAL_FILTER;
}
elseif(strcmp(arg[1],"no_filter")==0){
filterType_=NO_FILTER;
}
elsethrowATC_Error(0,"Not a supported time filter type");