C++ main module for gpm Package  1.0
GPM model page

This package GPM_Model describes the specialized classed for GPM_Core package used in GPM_Gui packages.

This package is the core package for GUI interface.

It enables to generate graph from :

The main class of the package is GPM_ModelRun class.

To use the program (see Program's help ) , type

1 gpm_model.exe --help

somme examples:

Program's help

gpm_model.exe [options] make [args] where:

Options are :

Args are

The graph file format is as follow:

1 #N vertices
2 idN Type variableName=value
3 #P edges
4 idE sourceId targetId EDGE

where :

For example,

1 #4 vertices
2 0 NODE mCoord=[0;0;0] state=0
3 1 PORT state=0.1
4 2 PORT state=0.1
5 3 NODE mCoord={[0;1;0]} state=1
6 # 3 edges
7 0 0 1 EDGE
8 1 1 2 EDGE
9 2 2 3 EDGE

The rules format is as follow:

1 #list of ids of vertices of pattern graph to remove
2 N
3 id_i
4 #list of ids of edges of pattern graph to remove
5 P
6 id_j
7 #list of edges between Pattern graph & Transform graph to add
8 Q
9 source_k target_k
10 #group node ids rules
11 groupNodeIds=varName1[+varName2]
12 #group port ids rules
13 groupPortIds=varName1[+varName2]
14 #mapping rules for pattern vertex
15 R
16 IsUpToAutomorphism=true
17 boolean_condition_r(pattern graph variables)
18 #state update
19 Q
20 TvariableName_id=fct(pattern graph_variable,transform graph variables defined before the rules)
21 PvariableName_id=fct(pattern graph_variable)

where :

For example,

1 #list of ids of vertices of pattern graph to remove
2 0
3 #list of ids of edges of pattern graph to remove
4 0
5 #list of edges between Pattern graph & Transform graph to add
6 3
7 3,4
8 3,6
9 3,8
10 #group node ids rules
11 groupNodeIds=state
12 #group port ids rules
13 groupPortIds=
14 #mapping rules for pattern vertex
15 0
16 #state update
17 5
18 P_3=2*P_3
19 T_0=rotation(P_3-P_0,-PI/3)+2*P_3
20 T_1=rotation(P_3-P_0,PI/3)+2*P_3
21 T_2=(P_3-P_0)+2*P_3
22 state_P_3=0

To compute the rewriting graph whith 3 rules & 3 iterations, execute the command:

1 gpm_model.exe --verbose-mode=debug --path=./data --output=./output --prefix=plant --init=plant-init.txt --iterationsNumber=3 --verbose=./output/plant.log --nRules=3 --rule_1=plant-rule01.txt --pattern_1=plant-pattern01.txt --transform_1=plant-transform01.txt --rule_2=plant-rule02.txt --pattern_2=plant-pattern02.txt --transform_2=plant-transform02.txt --rule_3=plant-rule03.txt --pattern_3=plant-pattern03.txt --transform_3=plant-transform03.txt make run