Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8e26595
Adjusted schema to existence of mode
engpas Feb 19, 2025
8751f7a
Added explicit mode to parameters
engpas Feb 19, 2025
c64ab4a
Revert import commenting
engpas Feb 20, 2025
fe18f9a
Enforce coding style
engpas Feb 20, 2025
102f2a8
Removed old code
engpas Feb 24, 2025
a28e886
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Feb 26, 2025
bcad099
Refactored Ducati
engpas Feb 27, 2025
fa789e7
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Feb 27, 2025
5b39a4d
Updated test to new jms
engpas Feb 27, 2025
3479793
Merge branch 'pengeler/laki-reqs-parameters' of https://github.com/an…
engpas Feb 27, 2025
7aa3ac3
Adjust docstrings
engpas Feb 28, 2025
6d7cce3
Update metadata description
engpas Feb 28, 2025
c477350
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Mar 13, 2025
c2adc3f
Merge branch 'main' into pengeler/laki-reqs-parameters
ojkoenig Mar 19, 2025
85eb902
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Mar 24, 2025
054b857
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Mar 25, 2025
d84bc4e
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Mar 26, 2025
f93d2f0
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Mar 26, 2025
dc641d6
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Mar 26, 2025
9de569e
Use format specifiers
engpas Mar 27, 2025
ffebd97
re-enabled opposite assert
engpas Mar 27, 2025
649e3a1
Fixed metadata string
engpas Mar 27, 2025
952eb1a
Autogenerated resources from schemas
engpas Mar 27, 2025
3a61ecf
Merge branch 'main' into pengeler/laki-reqs-parameters
engpas Mar 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 54 additions & 50 deletions examples/mapdl_motorbike_frame/project_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ def create_project(

project_api = ProjectApi(client, proj.id)

# File definitions
log.debug("=== Files")
cwd = os.path.dirname(__file__)
files = []
Expand Down Expand Up @@ -119,29 +120,54 @@ def create_project(
log.debug("=== JobDefinition with simulation workflow and parameters")
job_def = JobDefinition(name="JobDefinition.1", active=True)

# Parameter definitions
params = []
# Input params: Dimensions of three custom tubes
float_input_params = []
for i in range(1, 4):
float_input_params.extend(
params.extend(
[
FloatParameterDefinition(
name=f"tube{i}_radius", lower_limit=4.0, upper_limit=20.0, default=12.0
name=f"tube{i}_radius",
lower_limit=4.0,
upper_limit=20.0,
default=12.0,
mode="input",
),
FloatParameterDefinition(
name=f"tube{i}_thickness", lower_limit=0.5, upper_limit=2.5, default=1.0
name=f"tube{i}_thickness",
lower_limit=0.5,
upper_limit=2.5,
default=1.0,
mode="input",
),
]
)

float_input_params = project_api.create_parameter_definitions(float_input_params)
# Input params: Custom types used for all the different tubes of the frame
for i in range(1, 22):
params.append(
StringParameterDefinition(
name=f"tube{i}", default="1", value_list=["1", "2", "3"], mode="input"
)
)
# Output params
for pname in ["weight", "torsion_stiffness", "max_stress"]:
params.append(FloatParameterDefinition(name=pname, mode="output"))
# Runtime stats from MAPDL out file
params.append(FloatParameterDefinition(name="mapdl_elapsed_time_obtain_license", mode="output"))
params.append(FloatParameterDefinition(name="mapdl_cp_time", mode="output"))
params.append(FloatParameterDefinition(name="mapdl_elapsed_time", mode="output"))
# Create parameter definitions in project
params = project_api.create_parameter_definitions(params)

# Parameter mappings
param_mappings = []
pi = 0
for i in range(1, 4):
param_mappings.append(
ParameterMapping(
key_string=f"radius({i})",
tokenizer="=",
parameter_definition_id=float_input_params[pi].id,
parameter_definition_id=params[pi].id,
file_id=file_ids["inp"],
)
)
Expand All @@ -150,77 +176,57 @@ def create_project(
ParameterMapping(
key_string=f"thickness({i})",
tokenizer="=",
parameter_definition_id=float_input_params[pi].id,
parameter_definition_id=params[pi].id,
file_id=file_ids["inp"],
)
)
pi += 1

# Input params: Custom types used for all the different tubes of the frame
str_input_params = []
for i in range(1, 22):
str_input_params.append(
StringParameterDefinition(name=f"tube{i}", default="1", value_list=["1", "2", "3"])
)
str_input_params = project_api.create_parameter_definitions(str_input_params)

for i in range(1, 22):
param_mappings.append(
ParameterMapping(
key_string=f"tubes({i})",
tokenizer="=",
parameter_definition_id=str_input_params[i - 1].id,
parameter_definition_id=params[pi].id,
file_id=file_ids["inp"],
)
)

# Output Params
output_params = []
for pname in ["weight", "torsion_stiffness", "max_stress"]:
output_params.append(FloatParameterDefinition(name=pname))
output_params = project_api.create_parameter_definitions(output_params)
for pd in output_params:
pi += 1
for name in ["weight", "torsion_stiffness", "max_stress"]:
param_mappings.append(
ParameterMapping(
key_string=pd.name,
key_string=name,
tokenizer="=",
parameter_definition_id=pd.id,
parameter_definition_id=params[pi].id,
file_id=file_ids["results"],
)
)

stat_params = []
# # Collect some runtime stats from MAPDL out file
stat_params.append(FloatParameterDefinition(name="mapdl_elapsed_time_obtain_license"))
stat_params.append(FloatParameterDefinition(name="mapdl_cp_time"))
stat_params.append(FloatParameterDefinition(name="mapdl_elapsed_time"))
stat_params = project_api.create_parameter_definitions(stat_params)

pi += 1
param_mappings.append(
ParameterMapping(
key_string="Elapsed time spent obtaining a license",
tokenizer=":",
parameter_definition_id=stat_params[0].id,
parameter_definition_id=params[pi].id,
file_id=file_ids["out"],
)
)
pi += 1
param_mappings.append(
ParameterMapping(
key_string="CP Time (sec)",
tokenizer="=",
parameter_definition_id=stat_params[1].id,
parameter_definition_id=params[pi].id,
file_id=file_ids["out"],
)
)
pi += 1
param_mappings.append(
ParameterMapping(
key_string="Elapsed Time (sec)",
tokenizer="=",
parameter_definition_id=stat_params[2].id,
parameter_definition_id=params[pi].id,
file_id=file_ids["out"],
)
)

# For demonstration purpose we also define some parameter replacements
# that refer to task definition properties
param_mappings.append(
Expand Down Expand Up @@ -257,6 +263,7 @@ def create_project(
file_id=file_ids["inp"],
)
)
param_mappings = project_api.create_parameter_mappings(param_mappings)

# Task definition
task_def = TaskDefinition(
Expand Down Expand Up @@ -290,8 +297,9 @@ def create_project(
task_def.execution_script_id = file_ids["exec_mapdl"]

task_defs = [task_def]
task_defs = project_api.create_task_definitions(task_defs)

# # Fitness definition
# Fitness definition
fd = FitnessDefinition(error_fitness=10.0)
fd.add_fitness_term(
name="weight",
Expand All @@ -313,28 +321,24 @@ def create_project(
)
job_def.fitness_definition = fd

task_defs = project_api.create_task_definitions(task_defs)
param_mappings = project_api.create_parameter_mappings(param_mappings)

job_def.parameter_definition_ids = [
pd.id for pd in float_input_params + str_input_params + output_params + stat_params
]
job_def.parameter_definition_ids = [pd.id for pd in params]
job_def.parameter_mapping_ids = [pm.id for pm in param_mappings]
job_def.task_definition_ids = [td.id for td in task_defs]

# Create job_definition in project
job_def = project_api.create_job_definitions([job_def])[0]

job_def = project_api.get_job_definitions()[0]

log.debug(f"=== Create {num_jobs} jobs")
jobs = []
params = project_api.get_parameter_definitions()
input_float_params = [p for p in params if p.mode == "input" and p.type == "float"]
input_str_params = [p for p in params if p.mode == "input" and p.type == "string"]
for i in range(num_jobs):
values = {
p.name: p.lower_limit + random.random() * (p.upper_limit - p.lower_limit)
for p in float_input_params
for p in input_float_params
}
values.update({p.name: random.choice(p.value_list) for p in str_input_params})
values.update({p.name: random.choice(p.value_list) for p in input_str_params})
jobs.append(
Job(name=f"Job.{i}", values=values, eval_status="pending", job_definition_id=job_def.id)
)
Expand Down
10 changes: 8 additions & 2 deletions examples/mapdl_tyre_performance/project_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,27 +115,31 @@ def create_project(
lower_limit=-8.0,
upper_limit=8.0,
default=0.0,
mode="input",
),
FloatParameterDefinition(
name="inflation_pressure",
display_text="Inflation Pressure",
lower_limit=0.15e06,
upper_limit=0.3e06,
default=0.24e06,
mode="input",
),
FloatParameterDefinition(
name="rotational_velocity",
display_text="Rotational Velocity",
lower_limit=0.0,
upper_limit=70.0,
default=50.0,
mode="input",
),
FloatParameterDefinition(
name="translational_velocity",
display_text="Translational Velocity",
lower_limit=0.0,
upper_limit=30.0,
default=20.0,
mode="input",
),
]
input_params = project_api.create_parameter_definitions(input_params)
Expand Down Expand Up @@ -171,8 +175,10 @@ def create_project(

# Collect some runtime stats from MAPDL out file
output_params = [
FloatParameterDefinition(name="mapdl_cp_time", display_text="MAPDL CP Time"),
FloatParameterDefinition(name="mapdl_elapsed_time", display_text="MAPDL Elapsed Time"),
FloatParameterDefinition(name="mapdl_cp_time", display_text="MAPDL CP Time", mode="output"),
FloatParameterDefinition(
name="mapdl_elapsed_time", display_text="MAPDL Elapsed Time", mode="output"
),
]
output_params = project_api.create_parameter_definitions(output_params)

Expand Down
4 changes: 3 additions & 1 deletion examples/python_large_output/project_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,9 @@ def main(client, use_exec_script, python_version=None) -> Project:

# Input params
input_params = [
IntParameterDefinition(name="size", lower_limit=1, upper_limit=1000, default=1),
IntParameterDefinition(
name="size", lower_limit=1, upper_limit=1000, default=1, mode="input"
),
]
input_params = project_api.create_parameter_definitions(input_params)

Expand Down
7 changes: 5 additions & 2 deletions examples/python_linked_multi_process_step/project_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,13 @@ def main(client, num_task_definitions, num_jobs, start, inactive, python_version

log.debug("=== Parameters")
params = [
FloatParameterDefinition(name="start", lower_limit=1.0, upper_limit=start),
FloatParameterDefinition(name="start", lower_limit=1.0, upper_limit=start, mode="input"),
]
params.extend(
[FloatParameterDefinition(name=f"product{i}") for i in range(num_task_definitions)]
[
FloatParameterDefinition(name=f"product{i}", mode="output")
for i in range(num_task_definitions)
]
)
params = project_api.create_parameter_definitions(params)
job_def.parameter_definition_ids = [o.id for o in params]
Expand Down
9 changes: 6 additions & 3 deletions examples/python_multi_process_step/project_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,15 +161,18 @@ def main(
mappings = []
for i in range(num_task_definitions):
new_params = [
IntParameterDefinition(name=f"period{i}", lower_limit=1, upper_limit=period, units="s"),
IntParameterDefinition(
name=f"duration{i}", lower_limit=0, upper_limit=duration, units="s"
name=f"period{i}", lower_limit=1, upper_limit=period, units="s", mode="input"
),
IntParameterDefinition(name=f"steps{i}", units=""),
IntParameterDefinition(
name=f"duration{i}", lower_limit=0, upper_limit=duration, units="s", mode="input"
),
IntParameterDefinition(name=f"steps{i}", units="", mode="output"),
StringParameterDefinition(
name=f"color{i}",
value_list=["red", "blue", "green", "yellow", "cyan"],
default='"orange"',
mode="input",
),
]
new_params = project_api.create_parameter_definitions(new_params)
Expand Down
42 changes: 31 additions & 11 deletions examples/python_two_bar_truss_problem/project_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,25 +106,45 @@ def main(client, num_jobs, use_exec_script, python_version=None) -> Project:
# Input params
input_params = [
FloatParameterDefinition(
name="height", lower_limit=10, upper_limit=100.0, default=30, units="in"
name="height", lower_limit=10, upper_limit=100.0, default=30, units="in", mode="input"
),
FloatParameterDefinition(
name="diameter", lower_limit=0.2, upper_limit=5, default=3, units="in"
name="diameter", lower_limit=0.2, upper_limit=5, default=3, units="in", mode="input"
),
FloatParameterDefinition(
name="thickness", lower_limit=0.03, upper_limit=0.6, default=0.15, units="in"
name="thickness",
lower_limit=0.03,
upper_limit=0.6,
default=0.15,
units="in",
mode="input",
),
FloatParameterDefinition(
name="separation_distance", lower_limit=40, upper_limit=150, default=60, units="in"
name="separation_distance",
lower_limit=40,
upper_limit=150,
default=60,
units="in",
mode="input",
),
FloatParameterDefinition(
name="young_modulus", lower_limit=1e6, upper_limit=1e8, default=3e7, units="lbs in^-2"
name="young_modulus",
lower_limit=1e6,
upper_limit=1e8,
default=3e7,
units="lbs in^-2",
mode="input",
),
FloatParameterDefinition(
name="density", lower_limit=0.1, upper_limit=0.6, default=0.3, units="lbs in^-2"
name="density",
lower_limit=0.1,
upper_limit=0.6,
default=0.3,
units="lbs in^-2",
mode="input",
),
FloatParameterDefinition(
name="load", lower_limit=1e1, upper_limit=1e5, default=66e3, units="lbs"
name="load", lower_limit=1e1, upper_limit=1e5, default=66e3, units="lbs", mode="input"
),
]
input_params = project_api.create_parameter_definitions(input_params)
Expand Down Expand Up @@ -175,10 +195,10 @@ def main(client, num_jobs, use_exec_script, python_version=None) -> Project:
]

output_params = [
FloatParameterDefinition(name="weight", units="lbs"),
FloatParameterDefinition(name="stress", units="ksi"),
FloatParameterDefinition(name="buckling_stress", units="ksi"),
FloatParameterDefinition(name="deflection", units="in"),
FloatParameterDefinition(name="weight", units="lbs", mode="output"),
FloatParameterDefinition(name="stress", units="ksi", mode="output"),
FloatParameterDefinition(name="buckling_stress", units="ksi", mode="output"),
FloatParameterDefinition(name="deflection", units="in", mode="output"),
]
output_params = project_api.create_parameter_definitions(output_params)

Expand Down
Loading
Loading