ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <driver.h>
Public Member Functions | |
Driver () | |
~Driver () | |
void | init () |
An interface function. This function calls "this->reading()", "this->atomic_world()" in order. | |
Private Member Functions | |
void | print_start_info () |
Print the start information. | |
void | reading () |
Reading the parameters and split the MPI world. This function read the parameter in "INPUT", "STRU" etc, and split the MPI world into different groups. | |
void | atomic_world () |
An interface function. This function calls "this->driver_run()" to do calculation, and log the time and memory consumed during calculation. | |
void | driver_run () |
This is the driver function which defines the workflow of ABACUS calculations. It relies on the class Esolver, which is a class that organizes workflows of single point calculations. | |
Driver::Driver | ( | ) |
Driver::~Driver | ( | ) |
|
private |
An interface function. This function calls "this->driver_run()" to do calculation, and log the time and memory consumed during calculation.
|
private |
This is the driver function which defines the workflow of ABACUS calculations. It relies on the class Esolver, which is a class that organizes workflows of single point calculations.
For calculations involving change of configuration (lattice parameter & ionic motion), this driver calls Esolver::Run and the configuration-changing subroutine in a alternating manner.
Information is passed between the two subroutines by class UnitCell
Esolver::Run takes in a configuration and provides force and stress, the configuration-changing subroutine takes force and stress and updates the configuration
1: setup cell and atom information
2: initialize the ESolver (depends on a set-up ucell after setup_cell
)
3: initialize Esolver and fill json-structure
4: different types of calculations
supported "other" functions: get_pchg(LCAO), test_memory(PW,LCAO), test_neighbour(LCAO), gen_bessel(PW), et al.
5: clean up esolver
6: output the json file
void Driver::init | ( | ) |
An interface function. This function calls "this->reading()", "this->atomic_world()" in order.
|
private |
Print the start information.
|
private |
Reading the parameters and split the MPI world. This function read the parameter in "INPUT", "STRU" etc, and split the MPI world into different groups.