abaqus_batch_pack.abaqus_automation module

class abaqus_batch_pack.abaqus_automation.AbaqusCalculation(job_name, output_dir, workflow_strategy: JobWorkflowStrategy, cpus_per_job: int, abaqus_exe='abaqus')[source]

Bases: object

上下文类,持有并调用一个总的工作流策略来完成任务。

execute()[source]
run_simulation(cpus: int) bool[source]

Use ‘abaqus job=…, input=inp_file, cpus=num_cpu’ to run simulation.

class abaqus_batch_pack.abaqus_automation.BatchAbaqusProcessor(batch_data: list[dict], base_output_dir: str, cpus_per_job: int, abaqus_exe: str = 'abaqus', duplicate_mode: str = 'interactive')[source]

Bases: object

Run multiple Abaqus calculations in parallel based on a batch configuration.

run_batch(num_parallel_jobs: int, output_type: str = 'list')[source]

Run all calculations in parallel using multiprocessing.

Parameters:
  • num_parallel_jobs (int) – Number of parallel jobs to run.

  • output_type (str) – Type of output, either ‘list’ or ‘dict’.

Returns:

results of all calculations.

Return type:

list[dict] or dict[str, dict]

Example

>>> processor.run_batch(num_parallel_jobs=4, output_type='list')
[
        {
                'total_mass': 0.000320662622552476,
                'max_stress_mises': 4525.26025390625,
                'max_displacement': 4.189039707183838,
                'status': 'COMPLETED',
                'job_name': 'test_inp_based_job'
        },
        ...
]
>>> processor.run_batch(num_parallel_jobs=4, output_type='dict')
{
        'test_inp_based_job': {
                'total_mass': 0.000320662622552476,
                'max_stress_mises': 4525.26025390625,
                'max_displacement': 4.189039707183838,
                'status': 'COMPLETED'}
        ...
}
exception abaqus_batch_pack.abaqus_automation.BatchAbortedError[source]

Bases: Exception

abaqus_batch_pack.abaqus_automation.degenerate_from_array(results, output_names, default_value=nan) ndarray[source]

Depack results from a batch job into a 2D numpy array.

Parameters:
  • results (list[dict]) – List of results dictionaries from the batch job.

  • output_names (list[str]) – List of output names to extract from each result.

  • default_value (optional, default=np.nan) – Value to use if an output is missing in a result.

Returns:

A 2D numpy array where each row corresponds to a job and each column corresponds to an output name.

Return type:

np.ndarray

abaqus_batch_pack.abaqus_automation.generate_from_array(samples_array, param_names, base_config) list[dict][source]

Generate batch job configurations from a numerical array (numpy or torch).

Parameters:
  • samples_array (np.ndarray or torch.Tensor) – size (n_samples, n_dim)

  • param_names (list[str]) – A list of strings of length n_dim specifying the parameter names corresponding to each column of the array.

  • base_config (dict) – The base configuration shared by all tasks.

Returns:

list of generated batch_jobs_data.

Return type:

list[dict]