Handles both fragmented (many-body expansion) and unfragmented calculations with MPI parallelization and node-based work distribution. Main entry point for all calculations Multi-molecule calculation dispatcher
Main calculation dispatcher - routes to fragmented or unfragmented calculation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(resources_t), | intent(in) | :: | resources |
Resources container (MPI comms, etc.) |
||
| type(driver_config_t), | intent(in) | :: | config |
Driver configuration |
||
| type(system_geometry_t), | intent(in) | :: | sys_geom |
System geometry and fragment info |
||
| type(bond_t), | intent(in), | optional | :: | bonds(:) |
Bond connectivity information |
|
| type(calculation_result_t), | intent(out), | optional | :: | result_out |
Optional result output |
|
| logical, | intent(in), | optional | :: | all_ranks_write_json |
If true, all ranks write JSON (for multi-molecule) |
Run calculations for multiple molecules with MPI parallelization Each molecule is independent, so assign one molecule per rank
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(resources_t), | intent(in) | :: | resources | |||
| type(mqc_config_t), | intent(in) | :: | mqc_config |
Handle fragmented calculation (nlevel > 0)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(resources_t), | intent(in), | target | :: | resources |
Resources container (MPI comms, etc.) |
|
| type(driver_config_t), | intent(in) | :: | config |
Driver configuration (includes method_config, calc_type, etc.) |
||
| type(system_geometry_t), | intent(in) | :: | sys_geom |
System geometry and fragment info |
||
| type(bond_t), | intent(in), | optional | :: | bonds(:) |
Bond connectivity information |
|
| type(json_output_data_t), | intent(out), | optional | :: | json_data |
JSON output data |
Handle unfragmented calculation (nlevel=0)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(comm_t), | intent(in) | :: | world_comm |
Global MPI communicator |
||
| type(system_geometry_t), | intent(in) | :: | sys_geom |
Complete system geometry |
||
| type(driver_config_t), | intent(in) | :: | config |
Driver configuration (includes method_config, calc_type, etc.) |
||
| type(calculation_result_t), | intent(out), | optional | :: | result_out |
Optional result output |
|
| type(json_output_data_t), | intent(out), | optional | :: | json_data |
JSON output data |