Implements fragment distribution schemes for GMBE calculations with overlapping fragments Handles both serial and MPI-parallelized distribution of monomers and intersection fragments PIE-based serial processor PIE-based MPI coordinator
MPI coordinator for PIE-based GMBE calculations Distributes PIE terms across MPI ranks and accumulates results If json_data is present, populates it for centralized JSON output Bond connectivity is accessed via sys_geom%bonds
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(resources_t), | intent(in) | :: | resources | |||
| integer, | intent(in) | :: | pie_atom_sets(:,:) |
Unique atom sets (max_atoms, n_pie_terms) |
||
| integer, | intent(in) | :: | pie_coefficients(:) |
PIE coefficient for each term |
||
| integer(kind=int64), | intent(in) | :: | n_pie_terms | |||
| integer, | intent(in) | :: | node_leader_ranks(:) | |||
| integer, | intent(in) | :: | num_nodes | |||
| type(system_geometry_t), | intent(in) | :: | sys_geom | |||
| type(method_config_t), | intent(in) | :: | method_config |
Method configuration |
||
| integer(kind=int32), | intent(in) | :: | calc_type | |||
| type(json_output_data_t), | intent(out), | optional | :: | json_data |
JSON output data |
Serial GMBE processor using PIE coefficients Evaluates each unique atom set once and sums with PIE coefficients Supports energy-only, energy+gradient, and energy+gradient+Hessian calculations If json_data is present, populates it for centralized JSON output Bond connectivity is accessed via sys_geom%bonds
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | pie_atom_sets(:,:) |
Unique atom sets (max_atoms, n_pie_terms) |
||
| integer, | intent(in) | :: | pie_coefficients(:) |
PIE coefficient for each term |
||
| integer(kind=int64), | intent(in) | :: | n_pie_terms | |||
| type(system_geometry_t), | intent(in) | :: | sys_geom | |||
| type(method_config_t), | intent(in) | :: | method_config |
Method configuration |
||
| integer(kind=int32), | intent(in) | :: | calc_type | |||
| type(json_output_data_t), | intent(out), | optional | :: | json_data |
JSON output data |
Send PIE term (atom list) to remote node coordinator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(comm_t), | intent(in) | :: | world_comm | |||
| integer(kind=int64), | intent(in) | :: | term_idx | |||
| integer, | intent(in) | :: | pie_atom_sets(:,:) | |||
| integer, | intent(in) | :: | dest_rank |
Send PIE term (atom list) to local worker
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(comm_t), | intent(in) | :: | node_comm | |||
| integer(kind=int64), | intent(in) | :: | term_idx | |||
| integer, | intent(in) | :: | pie_atom_sets(:,:) | |||
| integer, | intent(in) | :: | dest_rank |