Add Kokkos version of minimize
This commit is contained in:
@ -78,7 +78,7 @@ Update::Update(LAMMPS *lmp) : Pointers(lmp)
|
||||
create_integrate(1,&str,1);
|
||||
|
||||
str = (char *) "cg";
|
||||
create_minimize(1,&str);
|
||||
create_minimize(1,&str,1);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
@ -376,22 +376,69 @@ Integrate *Update::integrate_creator(LAMMPS *lmp, int narg, char ** arg)
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void Update::create_minimize(int narg, char **arg)
|
||||
void Update::create_minimize(int narg, char **arg, int trysuffix)
|
||||
{
|
||||
if (narg != 1) error->all(FLERR,"Illegal min_style command");
|
||||
if (narg < 1) error->all(FLERR,"Illegal run_style command");
|
||||
|
||||
delete [] minimize_style;
|
||||
delete minimize;
|
||||
|
||||
if (minimize_map->find(arg[0]) != minimize_map->end()) {
|
||||
MinimizeCreator minimize_creator = (*minimize_map)[arg[0]];
|
||||
minimize = minimize_creator(lmp);
|
||||
}
|
||||
else error->all(FLERR,"Illegal min_style command");
|
||||
int sflag;
|
||||
new_minimize(arg[0],narg-1,&arg[1],trysuffix,sflag);
|
||||
|
||||
int n = strlen(arg[0]) + 1;
|
||||
minimize_style = new char[n];
|
||||
strcpy(minimize_style,arg[0]);
|
||||
if (sflag) {
|
||||
char estyle[256];
|
||||
if (sflag == 1) snprintf(estyle,256,"%s/%s",arg[0],lmp->suffix);
|
||||
else snprintf(estyle,256,"%s/%s",arg[0],lmp->suffix2);
|
||||
int n = strlen(estyle) + 1;
|
||||
minimize_style = new char[n];
|
||||
strcpy(minimize_style,estyle);
|
||||
} else {
|
||||
int n = strlen(arg[0]) + 1;
|
||||
minimize_style = new char[n];
|
||||
strcpy(minimize_style,arg[0]);
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
create the Minimize style, first with suffix appended
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Update::new_minimize(char *style, int narg, char **arg,
|
||||
int trysuffix, int &sflag)
|
||||
{
|
||||
if (trysuffix && lmp->suffix_enable) {
|
||||
if (lmp->suffix) {
|
||||
sflag = 1;
|
||||
char estyle[256];
|
||||
snprintf(estyle,256,"%s/%s",style,lmp->suffix);
|
||||
if (minimize_map->find(estyle) != minimize_map->end()) {
|
||||
MinimizeCreator minimize_creator = (*minimize_map)[estyle];
|
||||
minimize = minimize_creator(lmp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (lmp->suffix2) {
|
||||
sflag = 2;
|
||||
char estyle[256];
|
||||
snprintf(estyle,256,"%s/%s",style,lmp->suffix2);
|
||||
if (minimize_map->find(estyle) != minimize_map->end()) {
|
||||
MinimizeCreator minimize_creator = (*minimize_map)[estyle];
|
||||
minimize = minimize_creator(lmp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sflag = 0;
|
||||
if (minimize_map->find(style) != minimize_map->end()) {
|
||||
MinimizeCreator minimize_creator = (*minimize_map)[style];
|
||||
minimize = minimize_creator(lmp);
|
||||
return;
|
||||
}
|
||||
|
||||
error->all(FLERR,"Illegal minimize style");
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user