ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
Driver Class Reference

#include <driver.h>

Collaboration diagram for Driver:

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.
 

Constructor & Destructor Documentation

◆ Driver()

Driver::Driver ( )

◆ ~Driver()

Driver::~Driver ( )

Member Function Documentation

◆ atomic_world()

void Driver::atomic_world ( )
private

An interface function. This function calls "this->driver_run()" to do calculation, and log the time and memory consumed during calculation.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ driver_run()

void Driver::driver_run ( )
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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

void Driver::init ( )

An interface function. This function calls "this->reading()", "this->atomic_world()" in order.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_start_info()

void Driver::print_start_info ( )
private

Print the start information.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reading()

void Driver::reading ( )
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.

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: