Compare commits
	
		
			5 Commits
		
	
	
		
			6c8c93589b
			...
			9d7b0028a6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9d7b0028a6 | |||
| fb187dd3c5 | |||
| 54994d4587 | |||
| fb08f0af77 | |||
| 7e3778757c | 
							
								
								
									
										2
									
								
								experiments/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								experiments/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -3,3 +3,5 @@ venv | ||||
| logs | ||||
| __pycache__ | ||||
| generated/* | ||||
| batch/measurements/strong/* | ||||
| configs/measurements/strong/* | ||||
|  | ||||
| @ -1,8 +1,17 @@ | ||||
| VARIED_FILLINGS_IS := $(shell seq -w 0 10 100) | ||||
| VARIED_FILLINGS_JOBS := $(addprefix generated/varied-fillings-, $(addsuffix .json, ${VARIED_FILLINGS_IS})) | ||||
| 
 | ||||
| all: varied-fillings strong | ||||
| 
 | ||||
| varied-fillings: ${VARIED_FILLINGS_JOBS} | ||||
| 
 | ||||
| strong: | ||||
| 	python scripts/gen/strong.py | ||||
| 
 | ||||
| clean-strong: | ||||
| 	rm -f batch/measurements/strong/* | ||||
| 	rm -f configs/measurements/strong/spheroid*.json | ||||
| 
 | ||||
| clean: | ||||
| 	rm -f generated/* | ||||
| 
 | ||||
| @ -15,4 +24,4 @@ clean-outs: | ||||
| generated/varied-fillings-%.json: scripts/gen/varied_fillings.py templates/varied-fillings.json | ||||
| 	python scripts/gen/varied_fillings.py $* > $@ | ||||
| 
 | ||||
| .PHONY: varied-fillings clean clean-logs clean-outs | ||||
| .PHONY: varied-fillings strong clean clean-logs clean-outs | ||||
|  | ||||
							
								
								
									
										1
									
								
								experiments/batch/measurements/strong/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								experiments/batch/measurements/strong/.gitkeep
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| Generated by scripts/gen/strong.py | ||||
							
								
								
									
										102
									
								
								experiments/configs/comp.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								experiments/configs/comp.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,102 @@ | ||||
| { | ||||
|   "#Testing": { | ||||
|     "description": "Small experiment for comparing CPU and GPU implementations" | ||||
|   }, | ||||
|   "Application": "Cells", | ||||
|   "Geometry": { | ||||
|     "blocksize": [10, 10, 10], | ||||
|     "blockcount": [1, 1, 1] | ||||
|   }, | ||||
|   "Settings": { | ||||
|     "timesteps": 4, | ||||
|     "randomseed": 42 | ||||
|   }, | ||||
|   "Filling": { | ||||
|     "cells": [ | ||||
|       { | ||||
|         "_comment": "This is for the dynamic ECM", | ||||
|         "shape": "cube", | ||||
|         "box": [ | ||||
|           [0, 0, 0], | ||||
|           [9, 9, 9] | ||||
|         ], | ||||
|         "value": 0, | ||||
|         "celltype": 0 | ||||
|       }, | ||||
|       { | ||||
|         "shape": "cube", | ||||
|         "box": [ | ||||
|           [4, 4, 4], | ||||
|           [7, 7, 7] | ||||
|         ], | ||||
|         "celltype": 2 | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   "CellsInSilico": { | ||||
|     "liquid": 1, | ||||
|     "adhesion": { | ||||
|       "matrix": [ | ||||
|         [0, 0,  0, 0], | ||||
|         [0, 0,  0, 0], | ||||
|         [0, 0, 10, 5], | ||||
|         [0, 0,  5, 5] | ||||
|       ] | ||||
|     }, | ||||
|     "temperature": 15, | ||||
|     "volume": { | ||||
|       "default": [0, 0, 64, 64], | ||||
|       "lambda": { | ||||
|         "storage": "const", | ||||
|         "value": 10 | ||||
|       } | ||||
|     }, | ||||
|     "surface": { | ||||
|       "default": [0, 0, 80, 80], | ||||
|       "lambda": { | ||||
|         "storage": "const", | ||||
|         "value": 10 | ||||
|       } | ||||
|     }, | ||||
|     "cleaner": { | ||||
|       "killdistance": 100 | ||||
|     }, | ||||
|     "checkerboard": "00", | ||||
|     "energyfunctions": ["Volume00", "Surface00", "Adhesion00", "DynamicECM00"], | ||||
|     "centerofmass": { | ||||
|       "steps": 10 | ||||
|     }, | ||||
|     "dynamicecm": { | ||||
|       "enabled": true, | ||||
|       "stepsPerMcs": 10, | ||||
|       "pushSteps": 10, | ||||
|       "pushWeight": 2, | ||||
|       "ecmCellID": 0, | ||||
|       "deltat": 0.1, | ||||
|       "eta": 0.25, | ||||
|       "k0": 0.1, | ||||
|       "k1": 0.1, | ||||
|       "c": 4, | ||||
|       "alpha": 2, | ||||
|       "d": 0.3, | ||||
|       "phi": 1, | ||||
|       "lambda": 50 | ||||
|     } | ||||
|   }, | ||||
|   "Writers": { | ||||
|     "ParallelVTK_Cells": { | ||||
|       "writer": "ParallelVtkImage", | ||||
|       "outputtype": "UInt32", | ||||
|       "field": "cells", | ||||
|       "steps": 1 | ||||
|     }, | ||||
|     "ParallelVTK_Displacement": { | ||||
|       "writer": "ParallelVtkImage", | ||||
|       "outputtype": "Float32", | ||||
|       "field": "dynamicecm", | ||||
|       "components": [0, 1, 2], | ||||
|       "steps": 1 | ||||
|     } | ||||
|   }, | ||||
|   "WriteActions": ["ParallelVTK_Cells", "ParallelVTK_Displacement"] | ||||
| } | ||||
							
								
								
									
										1
									
								
								experiments/configs/measurements/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								experiments/configs/measurements/.gitkeep
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| Autogenerated by scripts/gen/strong.py | ||||
| @ -0,0 +1,44 @@ | ||||
| { | ||||
|     "DefineFunctions": [ | ||||
|         "r_angle()=360*rnd()", | ||||
|         "r_size()=400*rnd()" | ||||
|     ], | ||||
|     "Filling": { | ||||
|         "cells": [ | ||||
|             { | ||||
|                 "_comment": "This is for the dynamic ECM", | ||||
|                 "shape": "cube", | ||||
|                 "box": [ | ||||
|                   [0, 0, 0], | ||||
|                   [399, 399, 401] | ||||
|                 ], | ||||
|                 "value": 0, | ||||
|                 "celltype": 0 | ||||
|             }, | ||||
|             { | ||||
|                 "shape": "sphere", | ||||
|                 "pattern": "voronoi", | ||||
|                 "count": 5500, | ||||
|                 "radius": 75, | ||||
|                 "center": [ | ||||
|                     200, | ||||
|                     200, | ||||
|                     200 | ||||
|                 ], | ||||
|                 "box": [ | ||||
|                     [ | ||||
|                         110, | ||||
|                         110, | ||||
|                         110 | ||||
|                     ], | ||||
|                     [ | ||||
|                         290, | ||||
|                         290, | ||||
|                         290 | ||||
|                     ] | ||||
|                 ], | ||||
|                 "celltype": 9 | ||||
|             } | ||||
|         ] | ||||
|     } | ||||
| } | ||||
							
								
								
									
										109
									
								
								experiments/configs/medium.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								experiments/configs/medium.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,109 @@ | ||||
| { | ||||
|   "#Testing": { | ||||
|     "description": "Cellular Potts Model with dynamic ECM" | ||||
|   }, | ||||
|   "Application": "Cells", | ||||
|   "Geometry": { | ||||
|     "blocksize": [90, 90, 60], | ||||
|     "blockcount": [2, 2, 3] | ||||
|   }, | ||||
|   "Settings": { | ||||
|     "timesteps": 100, | ||||
|     "randomseed": 42 | ||||
|   }, | ||||
|   "Filling": { | ||||
|     "cells": [ | ||||
|       { | ||||
|         "_comment": "This is for the dynamic ECM", | ||||
|         "shape": "cube", | ||||
|         "box": [ | ||||
|           [0, 0, 0], | ||||
|           [179, 179, 179] | ||||
|         ], | ||||
|         "value": 0, | ||||
|         "celltype": 0 | ||||
|       }, | ||||
|       { | ||||
|         "shape": "cube", | ||||
|         "pattern": "voronoi", | ||||
|         "box": [ | ||||
|             [20, 20, 20], | ||||
|             [159, 159, 159] | ||||
|         ], | ||||
|         "count": 1500, | ||||
|         "celltype": [0, 0, 750, 750] | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   "CellsInSilico": { | ||||
|     "liquid": 1, | ||||
|     "adhesion": { | ||||
|       "matrix": [ | ||||
|         [0, 0,  0, 0], | ||||
|         [0, 0,  0, 0], | ||||
|         [0, 0, 10, 5], | ||||
|         [0, 0,  5, 5] | ||||
|       ] | ||||
|     }, | ||||
|     "temperature": 15, | ||||
|     "volume": { | ||||
|       "default": { | ||||
|         "storage": "const", | ||||
|         "value": 2000 | ||||
|       }, | ||||
|       "lambda": { | ||||
|         "storage": "const", | ||||
|         "value": 10 | ||||
|       } | ||||
|     }, | ||||
|     "surface": { | ||||
|       "default": { | ||||
|         "storage": "const", | ||||
|         "value": 800 | ||||
|       }, | ||||
|       "lambda": { | ||||
|         "storage": "const", | ||||
|         "value": 10 | ||||
|       } | ||||
|     }, | ||||
|     "cleaner": { | ||||
|       "killdistance": 100 | ||||
|     }, | ||||
|     "checkerboard": "00", | ||||
|     "energyfunctions": ["Volume00", "Surface00", "Adhesion00", "DynamicECM00"], | ||||
|     "centerofmass": { | ||||
|       "steps": 10 | ||||
|     }, | ||||
|     "dynamicecm": { | ||||
|       "enabled": true, | ||||
|       "stepsPerMcs": 100, | ||||
|       "pushSteps": 10, | ||||
|       "pushWeight": 2, | ||||
|       "ecmCellID": 0, | ||||
|       "deltat": 0.1, | ||||
|       "eta": 0.25, | ||||
|       "k0": 0.1, | ||||
|       "k1": 0.1, | ||||
|       "c": 4, | ||||
|       "alpha": 2, | ||||
|       "d": 0.3, | ||||
|       "phi": 1 | ||||
|     } | ||||
|   }, | ||||
|   "Writers": { | ||||
|     "ParallelVTK_Cells": { | ||||
|       "writer": "ParallelVtkImage", | ||||
|       "outputtype": "UInt32", | ||||
|       "field": "cells", | ||||
|       "steps": 1 | ||||
|     }, | ||||
|     "ParallelVTK_Displacement": { | ||||
|       "writer": "ParallelVtkImage", | ||||
|       "outputtype": "Float32", | ||||
|       "field": "dynamicecm", | ||||
|       "components": [0, 1, 2], | ||||
|       "steps": 1 | ||||
|     } | ||||
|   }, | ||||
|   "WriteActions": ["ParallelVTK_Cells", "ParallelVTK_Displacement"] | ||||
| } | ||||
| @ -4,11 +4,11 @@ | ||||
|   }, | ||||
|   "Application": "Cells", | ||||
|   "Geometry": { | ||||
|     "blocksize": [20, 20, 20], | ||||
|     "blockcount": [2, 1, 1] | ||||
|     "blocksize": [40, 20, 20], | ||||
|     "blockcount": [1, 1, 1] | ||||
|   }, | ||||
|   "Settings": { | ||||
|     "timesteps": 500, | ||||
|     "timesteps": 200, | ||||
|     "randomseed": 42 | ||||
|   }, | ||||
|   "Filling": { | ||||
| @ -76,7 +76,7 @@ | ||||
|     }, | ||||
|     "dynamicecm": { | ||||
|       "enabled": true, | ||||
|       "stepsPerMcs": 100, | ||||
|       "stepsPerMcs": 10, | ||||
|       "pushSteps": 10, | ||||
|       "pushWeight": 2, | ||||
|       "ecmCellID": 0, | ||||
|  | ||||
| @ -8,7 +8,7 @@ | ||||
|     "blockcount": [1, 1, 1] | ||||
|   }, | ||||
|   "Settings": { | ||||
|     "timesteps": 1, | ||||
|     "timesteps": 3, | ||||
|     "randomseed": 42 | ||||
|   }, | ||||
|   "Filling": { | ||||
|  | ||||
							
								
								
									
										116
									
								
								experiments/configs/spheroid/config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								experiments/configs/spheroid/config.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,116 @@ | ||||
| { | ||||
|     "Comments": ["Celltype         Usage", "0                Not Used", "1-5             Solids for blood vessels / ECM", "6               Liquid  ", "7               Apoptotic cell Type ", "8               Basic Non Dividing Cell type (surrounding)", "9               Cancer"], | ||||
|     "Application": "Cells", | ||||
|     "CellsInSilico": { | ||||
|         "ecmdegradation": { | ||||
|             "enabled": "false", | ||||
|             "steps": 99999, | ||||
|             "stochastic": "true", | ||||
|             "probability": 0.5 | ||||
|         }, | ||||
|         "energyfunctions": ["Volume00", "Surface01", "Motility00", "Adhesion01", "DynamicECM00"], | ||||
|         "liquid": 6, | ||||
|         "volume": { | ||||
|             "default": { | ||||
|                 "storage": "const", | ||||
|                 "value": 500 | ||||
|             }, | ||||
|             "lambda": [0, 0, 0, 0, 0, 0, 0, 7.5, 7.5, 7.5], | ||||
|             "sizechange": [0, 0, 0, 0, 0, 0, 0, -0.05, 0, 0, 0, 0, 0, 0, 0] | ||||
|         }, | ||||
|         "surface": { | ||||
|             "default": { | ||||
|                 "storage": "const", | ||||
|                 "value": 400 | ||||
|             }, | ||||
|             "lambda": [0, 0, 0, 0, 0, 0, 0, 5.625, 5.625, 1], | ||||
|             "sizechange": [0, 0, 0, 0, 0, 0, 0, -0.05, 0, 0, 0, 0, 0, 0, 0, 0] | ||||
|         }, | ||||
|         "adhesion": { | ||||
|             "matrix": [ | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 450], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 450, 0, 0, 0, 0, 0, 0, 0, 50] | ||||
|             ] | ||||
|         }, | ||||
|         "temperature": 50, | ||||
|         "division": { | ||||
|             "enabled": "true", | ||||
|             "condition": ["", "", "", "", "", "", "", "", "", "( volume >= 0.9 * volume0 )  & ( rnd() <= 0.00001 ) & generation < 1"] | ||||
|         }, | ||||
|         "centerofmass": { | ||||
|             "steps": 1 | ||||
|         }, | ||||
|         "signaling": { | ||||
|             "enabled": false | ||||
|         }, | ||||
|         "orientation": { | ||||
|             "enabled": true, | ||||
|             "motility": "persistentRandomWalk", | ||||
|             "persistenceMagnitude": 0.0, | ||||
|             "recalculationtime": 200, | ||||
|             "motilityamount": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] | ||||
|         }, | ||||
|         "visitor": { | ||||
|             "stepwidth": 10, | ||||
|             "checkerboard": "01" | ||||
|         }, | ||||
|         "cleaner": { | ||||
|             "killDistance": 20 | ||||
|         }, | ||||
|         "dynamicecm": { | ||||
|             "enabled": true, | ||||
|             "stepsPerMcs": 100, | ||||
|             "pushSteps": 10, | ||||
|             "pushWeight": 2, | ||||
|             "ecmCellID": 0, | ||||
|             "deltat": 0.1, | ||||
|             "eta": 0.25, | ||||
|             "k0": 0.1, | ||||
|             "k1": 0.1, | ||||
|             "c": 4, | ||||
|             "alpha": 2, | ||||
|             "d": 0.3, | ||||
|             "phi": 1 | ||||
|         } | ||||
|     }, | ||||
|     "Geometry": { | ||||
|         "blockcount": [8, 8, 6], | ||||
|         "blocksize": [50, 50, 67] | ||||
|     }, | ||||
|     "Settings": { | ||||
|         "randomseed": 0, | ||||
|         "timesteps": 100 | ||||
|     }, | ||||
|     "WriteActions": ["CellInfo"], | ||||
|     "Writers": { | ||||
|         "CellInfo": { | ||||
|             "field": "", | ||||
|             "groupsize": 0, | ||||
|             "steps": 1, | ||||
|             "writer": "CellInfo" | ||||
|         }, | ||||
|         "ParallelVTK_Cells": { | ||||
|             "field": "cells", | ||||
|             "outputtype": "UInt32", | ||||
|             "printhints": false, | ||||
|             "steps": 1, | ||||
|             "writer": "ParallelVtkImage" | ||||
|         }, | ||||
|         "ParallelVTK_Displacement": { | ||||
|             "writer": "ParallelVtkImage", | ||||
|             "outputtype": "Float32", | ||||
|             "field": "dynamicecm", | ||||
|             "components": [0, 1, 2], | ||||
|             "steps": 1 | ||||
|         } | ||||
|     }, | ||||
|     "Include": "config_filling_1.json" | ||||
| } | ||||
							
								
								
									
										44
									
								
								experiments/configs/spheroid/config_filling_1.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								experiments/configs/spheroid/config_filling_1.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | ||||
| { | ||||
|     "DefineFunctions": [ | ||||
|         "r_angle()=360*rnd()", | ||||
|         "r_size()=400*rnd()" | ||||
|     ], | ||||
|     "Filling": { | ||||
|         "cells": [ | ||||
|             { | ||||
|                 "_comment": "This is for the dynamic ECM", | ||||
|                 "shape": "cube", | ||||
|                 "box": [ | ||||
|                   [0, 0, 0], | ||||
|                   [399, 399, 401] | ||||
|                 ], | ||||
|                 "value": 0, | ||||
|                 "celltype": 0 | ||||
|             }, | ||||
|             { | ||||
|                 "shape": "sphere", | ||||
|                 "pattern": "voronoi", | ||||
|                 "count": 5500, | ||||
|                 "radius": 75, | ||||
|                 "center": [ | ||||
|                     200, | ||||
|                     200, | ||||
|                     200 | ||||
|                 ], | ||||
|                 "box": [ | ||||
|                     [ | ||||
|                         110, | ||||
|                         110, | ||||
|                         110 | ||||
|                     ], | ||||
|                     [ | ||||
|                         290, | ||||
|                         290, | ||||
|                         290 | ||||
|                     ] | ||||
|                 ], | ||||
|                 "celltype": 9 | ||||
|             } | ||||
|         ] | ||||
|     } | ||||
| } | ||||
							
								
								
									
										77
									
								
								experiments/scripts/gen/strong.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								experiments/scripts/gen/strong.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | ||||
| import copy | ||||
| import json | ||||
| 
 | ||||
| from dataclasses import dataclass | ||||
| from typing import Tuple | ||||
| 
 | ||||
| @dataclass | ||||
| class Configuration: | ||||
|     nodes: int | ||||
|     tasks: int | ||||
|     gpus_per_node: int | ||||
|     blockcount: Tuple[int, int, int] | ||||
|     blocksize: Tuple[int, int, int] | ||||
| 
 | ||||
|     def get_domain_size(self) -> int: | ||||
|         return self.blockcount[0] * self.blocksize[0] * self.blockcount[1] * self.blocksize[1] * self.blockcount[2] * self.blocksize[2] | ||||
| 
 | ||||
| configurations = [ | ||||
|     Configuration( 1,   12,   1, ( 1,  4, 3), (400, 100, 134)), | ||||
|     Configuration( 1,   24,   2, ( 2,  4, 3), (200, 100, 134)), | ||||
|     Configuration( 1,   48,   4, ( 4,  4, 3), (100, 100, 134)), | ||||
|     Configuration( 2,   96,   4, ( 4,  4, 6), (100, 100,  67)), | ||||
|     Configuration( 4,  192,   4, ( 4,  8, 6), (100,  50,  67)), | ||||
|     Configuration( 8,  384,   4, ( 8,  8, 6), ( 50,  50,  67)), | ||||
|     Configuration(16,  768,   4, ( 8, 16, 6), ( 50,  25,  67)), | ||||
|     Configuration(32, 1536,   4, (16, 16, 6), ( 25,  25,  67)) | ||||
| ] | ||||
| 
 | ||||
| with open("templates/spheroid.json") as template_file: | ||||
|     template = json.load(template_file) | ||||
| 
 | ||||
| for c in configurations: | ||||
|     print(c) | ||||
|     assert(c.get_domain_size() == configurations[0].get_domain_size()) | ||||
| 
 | ||||
|     nastja_config = copy.deepcopy(template) | ||||
| 
 | ||||
|     nastja_config["Geometry"]["blockcount"] = c.blockcount | ||||
|     nastja_config["Geometry"]["blocksize"] = c.blocksize | ||||
| 
 | ||||
|     label = f"{c.nodes:02}" | ||||
| 
 | ||||
|     if c.gpus_per_node < 4: | ||||
|         label += f"g{c.gpus_per_node}" | ||||
| 
 | ||||
|     with open(f"configs/measurements/strong/spheroid_{label}.json", "w") as config_file: | ||||
|         json.dump(nastja_config, config_file, indent=2) | ||||
| 
 | ||||
|     batch_config = f"""#!/usr/bin/env bash | ||||
| 
 | ||||
| #SBATCH --job-name=strong-{label} | ||||
| #SBATCH --account=hkf6 | ||||
| #SBATCH --partition=booster | ||||
| #SBATCH --nodes={c.nodes} | ||||
| #SBATCH --ntasks={c.tasks} | ||||
| # Counted per node | ||||
| #SBATCH --gres=gpu:{c.gpus_per_node} | ||||
| #SBATCH --time=06:00:00 | ||||
| #SBATCH --output=logs/strong-{label}-%A_%a.log | ||||
| #SBATCH --error=logs/strong-{label}-%A_%a.log | ||||
| #SBATCH --array=1-5 | ||||
| 
 | ||||
| SOURCE_DIR=/p/project/cellsinsilico/paulslustigebude | ||||
| OUTPUT_DIR="/p/scratch/cellsinsilico/paul/nastja-out/strong-{label}-${{SLURM_ARRAY_TASK_ID}}" | ||||
| 
 | ||||
| echo "${{OUTPUT_DIR}}" | ||||
| 
 | ||||
| mkdir -p "${{OUTPUT_DIR}}" | ||||
| source "${{SOURCE_DIR}}/activate-nastja-modules" | ||||
| 
 | ||||
| srun --unbuffered "${{SOURCE_DIR}}/nastja/build-cuda/nastja" \\ | ||||
|   -c "${{SOURCE_DIR}}/ma/experiments/configs/measurements/strong/spheroid_{c.nodes:02}.json" \\ | ||||
|   -o "${{OUTPUT_DIR}}" | ||||
| """ | ||||
| 
 | ||||
|     with open(f"batch/measurements/strong/strong-{label}", "w", encoding="utf8") as batch_config_file: | ||||
|         batch_config_file.write(batch_config) | ||||
							
								
								
									
										116
									
								
								experiments/templates/spheroid.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								experiments/templates/spheroid.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,116 @@ | ||||
| { | ||||
|     "Comments": ["Celltype         Usage", "0                Dynamic ECM", "1-5             Not Used", "6               Liquid  ", "7               Apoptotic cell Type ", "8               Basic Non Dividing Cell type (surrounding)", "9               Cancer"], | ||||
|     "Application": "Cells", | ||||
|     "CellsInSilico": { | ||||
|         "ecmdegradation": { | ||||
|             "enabled": "false", | ||||
|             "steps": 99999, | ||||
|             "stochastic": "true", | ||||
|             "probability": 0.5 | ||||
|         }, | ||||
|         "energyfunctions": ["Volume00", "Surface01", "Motility00", "Adhesion01", "DynamicECM00"], | ||||
|         "liquid": 6, | ||||
|         "volume": { | ||||
|             "default": { | ||||
|                 "storage": "const", | ||||
|                 "value": 500 | ||||
|             }, | ||||
|             "lambda": [0, 0, 0, 0, 0, 0, 0, 7.5, 7.5, 7.5], | ||||
|             "sizechange": [0, 0, 0, 0, 0, 0, 0, -0.05, 0, 0, 0, 0, 0, 0, 0] | ||||
|         }, | ||||
|         "surface": { | ||||
|             "default": { | ||||
|                 "storage": "const", | ||||
|                 "value": 400 | ||||
|             }, | ||||
|             "lambda": [0, 0, 0, 0, 0, 0, 0, 5.625, 5.625, 1], | ||||
|             "sizechange": [0, 0, 0, 0, 0, 0, 0, -0.05, 0, 0, 0, 0, 0, 0, 0, 0] | ||||
|         }, | ||||
|         "adhesion": { | ||||
|             "matrix": [ | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 450], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | ||||
|                 [0, 450, 0, 0, 0, 0, 0, 0, 0, 50] | ||||
|             ] | ||||
|         }, | ||||
|         "temperature": 50, | ||||
|         "division": { | ||||
|             "enabled": "true", | ||||
|             "condition": ["", "", "", "", "", "", "", "", "", "( volume >= 0.9 * volume0 )  & ( rnd() <= 0.00001 ) & generation < 1"] | ||||
|         }, | ||||
|         "centerofmass": { | ||||
|             "steps": 1 | ||||
|         }, | ||||
|         "signaling": { | ||||
|             "enabled": false | ||||
|         }, | ||||
|         "orientation": { | ||||
|             "enabled": true, | ||||
|             "motility": "persistentRandomWalk", | ||||
|             "persistenceMagnitude": 0.0, | ||||
|             "recalculationtime": 200, | ||||
|             "motilityamount": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] | ||||
|         }, | ||||
|         "visitor": { | ||||
|             "stepwidth": 10, | ||||
|             "checkerboard": "01" | ||||
|         }, | ||||
|         "cleaner": { | ||||
|             "killDistance": 20 | ||||
|         }, | ||||
|         "dynamicecm": { | ||||
|             "enabled": true, | ||||
|             "stepsPerMcs": 100, | ||||
|             "pushSteps": 10, | ||||
|             "pushWeight": 2, | ||||
|             "ecmCellID": 0, | ||||
|             "deltat": 0.1, | ||||
|             "eta": 0.25, | ||||
|             "k0": 0.1, | ||||
|             "k1": 0.1, | ||||
|             "c": 4, | ||||
|             "alpha": 2, | ||||
|             "d": 0.3, | ||||
|             "phi": 1 | ||||
|         } | ||||
|     }, | ||||
|     "Geometry": { | ||||
|         "blockcount": [4, 4, 3], | ||||
|         "blocksize": [100, 100, 134] | ||||
|     }, | ||||
|     "Settings": { | ||||
|         "randomseed": 0, | ||||
|         "timesteps": 100 | ||||
|     }, | ||||
|     "WriteActions": ["CellInfo"], | ||||
|     "Writers": { | ||||
|         "CellInfo": { | ||||
|             "field": "", | ||||
|             "groupsize": 0, | ||||
|             "steps": 1, | ||||
|             "writer": "CellInfo" | ||||
|         }, | ||||
|         "ParallelVTK_Cells": { | ||||
|             "field": "cells", | ||||
|             "outputtype": "UInt32", | ||||
|             "printhints": false, | ||||
|             "steps": 100, | ||||
|             "writer": "ParallelVtkImage" | ||||
|         }, | ||||
|         "ParallelVTK_Displacement": { | ||||
|             "writer": "ParallelVtkImage", | ||||
|             "outputtype": "Float32", | ||||
|             "field": "dynamicecm", | ||||
|             "components": [0, 1, 2], | ||||
|             "steps": 100 | ||||
|         } | ||||
|     }, | ||||
|     "Include": "config_filling_1.json" | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user