|
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. | |
| void | init_hardware () |
| void | finalize_hardware () |
| 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
|
private |
| void Driver::init | ( | ) |
An interface function. This function calls "this->reading()", "this->atomic_world()" in order.
|
private |
|
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.