-
Notifications
You must be signed in to change notification settings - Fork 0
/
externalpotential.dot
119 lines (105 loc) · 3.52 KB
/
externalpotential.dot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
digraph{
graph [splines=ortho, nodesep=1]
node [fontname="Ubuntu",fontsize="10",shape=record];
edge [fontsize="10",labelfontsize="20"];
IExternalPotential [
label="{\<\<Interface\>\> \n IExternalPotential||"
+"+ virtual init(state, ParameterSet, AtomSet)\l"
+"+ virtual reinit(state)\l"
+"+ virtual calculate(state, step)\l"
+"+ virutal this_step(step:int)\l"
+"+ virtual result():ExternalPotentialResult\l"
+"+ virtual set_parallelization(\l"
+ "Parallel:ParallelizationInfrastructure)\r"
+"+ virtual finish()\l"
+"}"
];
ExternalPotentialResult [
label="{ExternalPotentialResult|"
+ "- potential: real\l"
+ "- force:vector\<RVec\>\l"
+ "- affected_atoms: shared_ptr\<AtomSet\>\l"
+ "- virial:real\l|"
+"}"
]
ExternalPotentialHelpers [
label="{ExternalPotentialHelpers|"
+ "-impl\l|"
+"+ sum_reduce_potential_virial()\l"
+" # read_input()\l"
+" # set_atom_properties(t_mdatoms * mdatoms, gmx_localtop_t * toplogy_loc);\l"
+" # AtomSetCoordinates(const rvec x[], int group_index);\l"
+" # single_atom_properties()\l"
+" # broadcast_internal()\l}"
];
AtomProperties [label="{AtomProperties||}"];
Foo [label="{SomeConcretePotential}" ];
FooInfo [label="{SomeConcretePotentialInfo|"
+ "+ static name:string\l"
+ "+ static create:ModuleCreator\l"
+ "+ static shortDescription:string\l"
+ "+ static numberIndexGroups:int\l}"
]
ExternalPotentialManager [
label=
"{ExternalPotentialManager|"
+ "- vector\<IExternalPotential\>\l"
+ "- modules_:Modules\l|"
+ "+ init()\l"
+ "+ calculate()\l"
+ "+ add_results()\l"
+ "+ set_parallelization()\l"
+ "+ finish()\l}"
];
AtomSet [
label=
"{AtomSet|"
+ "+ AtomSet(natoms:int, index:vector\<int\>,
global_to_local: gmx_ga2la_t *)\r"
+ "+ reinit(ga2la: gmx_ga2la_t *)\l"
+ "}"
]
AtomSetManager [
label=
"{AtomSetManager|"
+ " - vector<AtomSets>|"
+ "+ reinit(ga2la: gmx_ga2la_t *)\l"
+ "+ finish()\l}"
];
Modules [label="{Modules|"
+ " + module: std::map\<ModuleName, ModuleProperties\> \l"
+ " \<\<typedef\>\> ModuleName:string\l| }"
];
ModuleProperties [label="{ModuleProperties|"
+ "+ \<\<typedef\>\> unique_ptr\<IExternalPotential\> (* ModuleCreator) ()\l"
+ "+ create:ModuleCreator\l"
+ "+ shortDescription:string\l"
+ "+ numberIndexGroups:int\l}"
]
ParallelizationInfrastructure [
label="{ParallelizationInfrastructure|"
+ "|"
+ "+ cr()\l"
+ "+ sum_reduce()\l"
+ "+ broadcast()\l"
+ "+ isMaster()\l"
+ "+ from_buffer()\l"
+ "+ to_buffer()\l"
+ "}"];
edge[arrowhead = "odiamond"];
IExternalPotential -> ExternalPotentialManager;
AtomSet -> AtomSetManager;
ModuleProperties -> Modules;
edge[arrowhead = "empty"];
Foo ->IExternalPotential;
Foo ->ExternalPotentialHelpers;
edge[arrowhead = "vee", style = "dashed"];
IExternalPotential -> ExternalPotentialResult ;
ExternalPotentialManager -> ExternalPotentialResult;
IExternalPotential -> AtomSet;
ExternalPotentialManager -> Modules;
ExternalPotentialResult -> AtomSet;
ExternalPotentialHelpers -> AtomProperties;
FooInfo -> Modules [label="registerExternalPotentialModules"];
IExternalPotential -> ParallelizationInfrastructure;
}