Skip to content

Commit 18c4e83

Browse files
committed
refactor(schema): Update JSON schema to match nested configuration structure
- Restructure schema to use nested 'domain' object instead of flat Lx/Ly/Lz/dx/dy/dz/origin fields - Restructure schema to use nested 'timestepping' object instead of flat t0/t1/dt/saveat fields - Update required fields to use 'domain' and 'timestepping' objects - Add optional 'detailed_timing' object for performance profiling configuration - Add optional 'plan_options' object for FFT backend configuration - Add optional 'simulator' object for restart/checkpoint configuration - Add 'initial_position' field to moving boundary condition definition - Add 'seed_grid_fcc' initial condition type for FCC crystal structures - Add 'aluminum' model definition with all required parameters - Change 'origo' to 'origin' field name to match updated configuration format - Align schema with TOML configuration structure for consistency
1 parent a6dfa09 commit 18c4e83

File tree

1 file changed

+274
-45
lines changed

1 file changed

+274
-45
lines changed

apps/schema.json

Lines changed: 274 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -10,45 +10,73 @@
1010
"oneOf": [
1111
{
1212
"$ref": "#/definitions/models/tungsten"
13+
},
14+
{
15+
"$ref": "#/definitions/models/aluminum"
1316
}
1417
]
1518
},
16-
"Lx": {
17-
"type": "integer"
18-
},
19-
"Ly": {
20-
"type": "integer"
21-
},
22-
"Lz": {
23-
"type": "integer"
24-
},
25-
"dx": {
26-
"type": "number"
27-
},
28-
"dy": {
29-
"type": "number"
30-
},
31-
"dz": {
32-
"type": "number"
33-
},
34-
"origo": {
35-
"type": "string",
36-
"enum": [
37-
"center",
38-
"corner"
19+
"domain": {
20+
"type": "object",
21+
"properties": {
22+
"Lx": {
23+
"type": "integer"
24+
},
25+
"Ly": {
26+
"type": "integer"
27+
},
28+
"Lz": {
29+
"type": "integer"
30+
},
31+
"dx": {
32+
"type": "number"
33+
},
34+
"dy": {
35+
"type": "number"
36+
},
37+
"dz": {
38+
"type": "number"
39+
},
40+
"origin": {
41+
"type": "string",
42+
"enum": [
43+
"center",
44+
"corner"
45+
]
46+
}
47+
},
48+
"required": [
49+
"Lx",
50+
"Ly",
51+
"Lz",
52+
"dx",
53+
"dy",
54+
"dz",
55+
"origin"
3956
]
4057
},
41-
"t0": {
42-
"type": "number"
43-
},
44-
"t1": {
45-
"type": "number"
46-
},
47-
"dt": {
48-
"type": "number"
49-
},
50-
"saveat": {
51-
"type": "number"
58+
"timestepping": {
59+
"type": "object",
60+
"properties": {
61+
"t0": {
62+
"type": "number"
63+
},
64+
"t1": {
65+
"type": "number"
66+
},
67+
"dt": {
68+
"type": "number"
69+
},
70+
"saveat": {
71+
"type": "number"
72+
}
73+
},
74+
"required": [
75+
"t0",
76+
"t1",
77+
"dt",
78+
"saveat"
79+
]
5280
},
5381
"fields": {
5482
"type": "array",
@@ -83,6 +111,9 @@
83111
},
84112
{
85113
"$ref": "#/definitions/initial_conditions/from_file"
114+
},
115+
{
116+
"$ref": "#/definitions/initial_conditions/seed_grid_fcc"
86117
}
87118
]
88119
}
@@ -102,21 +133,63 @@
102133
}
103134
]
104135
}
136+
},
137+
"detailed_timing": {
138+
"type": "object",
139+
"properties": {
140+
"enabled": {
141+
"type": "boolean"
142+
},
143+
"print": {
144+
"type": "boolean"
145+
},
146+
"write": {
147+
"type": "boolean"
148+
},
149+
"filename": {
150+
"type": "string"
151+
}
152+
}
153+
},
154+
"plan_options": {
155+
"type": "object",
156+
"properties": {
157+
"use_reorder": {
158+
"type": "boolean"
159+
},
160+
"reshape_algorithm": {
161+
"type": "string",
162+
"enum": [
163+
"alltoall",
164+
"alltoallv",
165+
"p2p",
166+
"p2p_plined"
167+
]
168+
},
169+
"use_pencils": {
170+
"type": "boolean"
171+
},
172+
"use_gpu_aware": {
173+
"type": "boolean"
174+
}
175+
}
176+
},
177+
"simulator": {
178+
"type": "object",
179+
"properties": {
180+
"result_counter": {
181+
"type": "integer"
182+
},
183+
"increment": {
184+
"type": "integer"
185+
}
186+
}
105187
}
106188
},
107189
"required": [
108190
"model",
109-
"Lx",
110-
"Ly",
111-
"Lz",
112-
"dx",
113-
"dy",
114-
"dz",
115-
"origo",
116-
"t0",
117-
"t1",
118-
"dt",
119-
"saveat",
191+
"domain",
192+
"timestepping",
120193
"fields",
121194
"initial_conditions",
122195
"boundary_conditions"
@@ -249,6 +322,113 @@
249322
"name",
250323
"params"
251324
]
325+
},
326+
"aluminum": {
327+
"type": "object",
328+
"properties": {
329+
"name": {
330+
"type": "string",
331+
"description": "model name",
332+
"enum": [
333+
"aluminum"
334+
]
335+
},
336+
"params": {
337+
"type": "object",
338+
"properties": {
339+
"n0": {
340+
"type": "number",
341+
"description": "average density"
342+
},
343+
"alpha": {
344+
"type": "number",
345+
"description": "width of C2's peak"
346+
},
347+
"n_sol": {
348+
"type": "number",
349+
"description": "density of the solid"
350+
},
351+
"n_vap": {
352+
"type": "number",
353+
"description": "density of the vapor"
354+
},
355+
"T_const": {
356+
"type": "number",
357+
"description": "constant temperature"
358+
},
359+
"T_min": {
360+
"type": "number",
361+
"description": "minimum temperature"
362+
},
363+
"T_max": {
364+
"type": "number",
365+
"description": "maximum temperature"
366+
},
367+
"T0": {
368+
"type": "number",
369+
"description": "reference temperature"
370+
},
371+
"Bx": {
372+
"type": "number"
373+
},
374+
"G_grid": {
375+
"type": "number"
376+
},
377+
"V_grid": {
378+
"type": "number"
379+
},
380+
"x_initial": {
381+
"type": "number"
382+
},
383+
"alpha_farTol": {
384+
"type": "number"
385+
},
386+
"alpha_highOrd": {
387+
"type": "integer"
388+
},
389+
"lambda": {
390+
"type": "number"
391+
},
392+
"stabP": {
393+
"type": "number"
394+
},
395+
"shift_u": {
396+
"type": "number"
397+
},
398+
"shift_s": {
399+
"type": "number"
400+
},
401+
"p2_bar": {
402+
"type": "number"
403+
},
404+
"p3_bar": {
405+
"type": "number"
406+
},
407+
"p4_bar": {
408+
"type": "number"
409+
},
410+
"q20_bar": {
411+
"type": "number"
412+
},
413+
"q21_bar": {
414+
"type": "number"
415+
},
416+
"q30_bar": {
417+
"type": "number"
418+
},
419+
"q31_bar": {
420+
"type": "number"
421+
},
422+
"q40_bar": {
423+
"type": "number"
424+
}
425+
}
426+
}
427+
},
428+
"required": [
429+
"name",
430+
"params"
431+
]
252432
}
253433
},
254434
"initial_conditions": {
@@ -367,6 +547,49 @@
367547
"type",
368548
"filename"
369549
]
550+
},
551+
"seed_grid_fcc": {
552+
"type": "object",
553+
"description": "FCC seed grid initial condition",
554+
"properties": {
555+
"target": {
556+
"type": "string"
557+
},
558+
"type": {
559+
"type": "string",
560+
"enum": [
561+
"seed_grid_fcc"
562+
]
563+
},
564+
"amplitude": {
565+
"type": "number"
566+
},
567+
"rho": {
568+
"type": "number"
569+
},
570+
"radius": {
571+
"type": "number"
572+
},
573+
"X0": {
574+
"type": "number"
575+
},
576+
"Ny": {
577+
"type": "integer"
578+
},
579+
"Nz": {
580+
"type": "integer"
581+
}
582+
},
583+
"required": [
584+
"target",
585+
"type",
586+
"amplitude",
587+
"rho",
588+
"radius",
589+
"X0",
590+
"Ny",
591+
"Nz"
592+
]
370593
}
371594
},
372595
"boundary_conditions": {
@@ -408,6 +631,12 @@
408631
"moving"
409632
]
410633
},
634+
"initial_position": {
635+
"type": "string",
636+
"enum": [
637+
"end"
638+
]
639+
},
411640
"rho_low": {
412641
"type": "number"
413642
},

0 commit comments

Comments
 (0)