FDS-to-ABAQUS non-uniform temperature field bridging method empowered by python
By using Python-enabled methods, a non-uniform temperature field bridging between FDS and ABAQUS was achieved, solving the problems of data format incompatibility and mesh inconsistency, and providing an efficient fire response analysis method for complex structures.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA UNIV OF MINING & TECH
- Filing Date
- 2024-10-11
- Publication Date
- 2026-05-29
AI Technical Summary
In existing technologies, the incompatibility of data formats, inaccurate data mapping, and mesh inconsistencies between the two software programs FDS and ABAQUS limit the fire response analysis of complex structures, leading to misleading calculation results and low efficiency.
By employing Python-enabled methods, the model is transformed using CAD/SolidWorks, and non-uniform temperature field data is automatically extracted using the Python language. The temperature assignment region is then adjusted using the ABAQUS regionToolset.Region function, achieving efficient mapping of non-uniform temperature fields.
It eliminates the need to ensure consistency between FDS and ABAQUS meshes, improving computational flexibility and accuracy. It is suitable for fire response analysis of complex structures and meets the needs of diverse building structure designs.
Smart Images

Figure CN119558035B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the interdisciplinary field of fire dynamics and structural response analysis, specifically to a Python-enabled bridging method for non-uniform temperature fields from FDS to ABAQUS. Background Technology
[0002] Fire dynamics and structural mechanical response belong to different disciplines, and the software programs FDS and ABAQUS were designed and developed based on the needs of these two disciplines, respectively. In the early development of these disciplines, there was little cross-disciplinary integration, resulting in the lack of a mature and efficient compatibility mechanism between the two software programs to comprehensively explore the temperature field distribution formed in a structure during a fire and the mechanical response of the structure under this complex temperature field. The current difficulty in effectively linking and co-analyzing the two software programs severely restricts the deep cross-disciplinary integration of fire science, fire protection engineering, and structural engineering, thus limiting in-depth research into the mechanism and evolution of the overall mechanical response of structures under fire conditions. Therefore, it is necessary to develop a non-uniform temperature field mapping method that can bridge FDS and ABAQUS to fully consider the non-uniform temperature field in the space where different parts of the structure are located during a fire, accurately simulate the deformation, fire resistance limit, and mechanical performance degradation of the structure under a non-uniform temperature field during a fire, and thus accurately assess the behavior of the structure in a real fire environment. The development of a non-uniform temperature field bridging method from FDS to ABAQUS mainly faces the following challenges:
[0003] 1. FDS and ABAQUS use different data formats for storage and import, leading to significant incompatibility issues between the two software programs. Furthermore, FDS can only output temperature curves over time, lacking geometric spatial location information in the tables. Therefore, data directly exported from FDS cannot be accurately located point-to-point in space and mapped to temperature points within the ABAQUS model, thus affecting the accuracy of the model's calculation results.
[0004] 2. Currently, the use of FDS and ABAQUS for structural fire response analysis is limited to simple geometric structures, such as single steel plates or columns. Specifically, the average value of the temperature field calculated by FDS is taken to generate one or more temperature field curves, which are then manually input into the model within a predefined field of ABAQUS. However, for large-scale spaces and structures with complex geometries, fires often spread from the ignition point, forming a non-uniform temperature field. In such cases, simply averaging the temperature rise curves within the space and manually inputting a limited number of temperature amplitudes is clearly insufficient to accurately reproduce the mechanical response of the structure under real fire conditions. This can easily lead to erroneous scientific conclusions due to a cursory analysis, misleading the focus and direction of research. Furthermore, the manual input method is inefficient, failing to efficiently map and transmit the hundreds or thousands of temperature curves that constitute a non-uniform temperature field.
[0005] 3. Fire Dynamics System (FDS) primarily focuses on fire dynamics simulation with relatively low accuracy requirements. Therefore, FDS models only support square mesh configurations, and the mesh size is relatively large. ABAQUS, on the other hand, emphasizes in-depth analysis of structural mechanical responses, and the quality of the mesh determines the model's convergence. For structures with simple geometry (such as single steel plates or columns), the mesh shape and size are easily kept consistent in both FDS and ABAQUS. The high consistency in spatial resolution makes it easy to export temperature curve data from FDS and input it into ABAQUS. However, for complex, irregularly shaped structures with varied forms, using only square meshes is insufficient to meet the accuracy and convergence requirements of mechanical analysis when performing thermo-mechanical coupling analysis. Therefore, the mesh generation and node distribution of complex, irregularly shaped structures cannot be consistently matched in the two software programs, which severely limits the joint analysis of structural responses under real fire conditions in the field of fire-resistant design of complex structures. Summary of the Invention
[0006] To address the aforementioned technical shortcomings, the purpose of this invention is to provide a Python-enabled bridging method for non-uniform temperature fields from FDS to ABAQUS. This method not only solves the data format incompatibility problem between FDS and ABAQUS, but also efficiently imports the non-uniform temperature field calculated by FDS under fire conditions into ABAQUS. Furthermore, it is not limited by the consistency of the meshes in the two software programs and is groundbreakingly applicable to the structural response analysis of various complex structures under fire conditions.
[0007] To solve the above-mentioned technical problems, the present invention adopts the following technical solution:
[0008] This invention provides a Python-enabled bridging method for FDS to ABAQUS non-uniform temperature fields, comprising the following steps:
[0009] Step 1: Use CAD / SolidWorks to bridge ABAQUS and FDS, convert the model format, and successfully import the model from ABAQUS into FDS, so as to achieve accurate modeling and high-precision simulation of fire dynamics of complex structures in FDS.
[0010] Step 2: Using functions in the Python language, automatically and in batches extract the key information necessary to map the non-uniform temperature field to ABAQUS from the fire temperature distribution cloud map results calculated by FDS, including the temperature change amplitude of the nodes over time and their corresponding precise three-dimensional spatial coordinates; preprocess the extracted data and store it in a data format that ABAQUS can directly read and process.
[0011] Step 3: In ABAQUS software, the preprocessed temperature data results are automatically recognized and imported into the corresponding spatial coordinate positions of the model;
[0012] By changing the values of predefined variables, the corresponding assembly name, model name, and application analysis step of the model to be imported are locked; the coordinates (x, y, z) of the fire source location are given by the position function, and the spatial position of the boundary instrument and the search tool is adjusted by associating with the regionToolset.Region function;
[0013] The size of the defined spatial regions of the "boundary instrument" and "searcher" can be adjusted by inputting appropriate xMin, xMax, yMin, yMax, zMin, and zMax into the regionToolset.Region function; ultimately, this allows for flexible adjustment of the size and density of the heated region in ABAQUS, improving computational accuracy and efficiency.
[0014] Preferably, in step 1, the model is imported from ABAQUS into FDS for fire dynamics simulation, specifically including the following steps:
[0015] Step 1.1: In ABAQUS, export the refined structural model partitions as .step format;
[0016] Step 1.2: Import the .step format model into Solidworks software and export it as a .sat format model (version 6.0 or earlier);
[0017] Step 1.3: Import models in .sat format (version 6.0 and below) into the CAD software, and export the models in .dwg format;
[0018] Step 1.4: Import each part of the .dwg format model into FDS software, and complete the assembly of the entire model in FDS;
[0019] Step 1.5: Set the fire source power, heat release rate, mesh size and boundary conditions in FDS, and arrange thermocouple measuring points and 3D / 2D slices as required.
[0020] Preferably, step 2, the process of automating and batch extracting and preprocessing key information of non-uniform temperature fields, specifically includes the following steps:
[0021] Step 2.1: Call the fds2asciia program that comes with FDS to automatically extract and store the temperature of each node in the process;
[0022] Step 2.1.1: Set base_path to the directory path for storing FDS simulation results;
[0023] Step 2.1.2: Set folder_name to the name of the folder from which the FDS simulation results will be extracted;
[0024] Step 2.1.3: Use the os.chdir function to switch the working directory to base_path so that the fds2ascii program can be called and executed later;
[0025] Step 2.1.4: Define the time interval and the total time duration to limit the time interval and time range for data extraction;
[0026] Step 2.1.5: Use the range function to loop through the time interval from 0 to duration, incrementing the interval by seconds each time; for each time interval, calculate the end time end_time and set it as start_time + interval time;
[0027] Step 2.1.6: Create a list fds2ascii_command containing the path to the fds2ascii executable file and the required parameters, including: Job ID, SLCF file type, sampling factor, domain size limit, start and end times of averaging time, number of variables to read, index of selected variables, and output file name;
[0028] Step 2.1.7: Call the subprocess.run method to execute commands sequentially in fds2ascii; after the loop ends, the time-temperature data for all time periods will be exported.
[0029] Step 2.2: Extract node spatial coordinate information from the FDS model command stream;
[0030] Step 2.2.1: Using the extract_data function, define txt_file_path (the path to the input text file) and csv_file_path (the path to the output CSV file);
[0031] Step 2.2.2: Define a regular expression pattern to match a specific format in the FDS model command stream.txt file, including the DEVC ID and XYZ coordinates;
[0032] Step 2.2.3: Use the open function to open the text file corresponding to the model command stream in read mode and UTF-8 encoding, and traverse each line in the file;
[0033] Step 2.2.4: Use pattern.search to find content that matches the regular expression, extract the four values devc_id, x, y, and z, and add them as a list to the data list;
[0034] Step 2.2.5: Use the open function to open the specified CSV file in write mode, and set newline=" to avoid blank lines;
[0035] Step 2.2.6: Create a CSV writer object `writer`, and use `writer.writerow` to write the table header ['DEVC ID','X','Y','Z'];
[0036] Step 2.2.7: Iterate through the data list and use the writer.writerow method to write data line by line;
[0037] Step 2.2.8: Save the data to the specified CSV file path;
[0038] Step 2.3: Preprocess the extracted ambient temperature data and node spatial coordinate information, matching the temperature of each node with its corresponding spatial coordinates, processing it into time-varying temperature data with geometric spatial location labels, and storing it as a .csv file; see [link to relevant documentation]. Figure 3 .
[0039] Preferably, in step 3, the extracted non-uniform temperature field data results are automatically identified and imported into the ABAQUS model, specifically including the following steps:
[0040] Step 3.1: In the meshing module of ABAQUS, create mesh components for the entire model to form new mesh-type components;
[0041] Step 3.2: Delete the original assembly in the assembly module and reassemble the mesh component formed in step 3.1;
[0042] Step 3.3: Move the .csv file containing the preprocessed temperature data with geometric spatial location labels from Step 2 to the same path as the .cae file of the ABAQUS model that will be temperature-assigned;
[0043] Step 3.4: Import the extracted non-uniform temperature field data into the ABAQUS model;
[0044] Step 3.4.1: In the Temp function, call the extract_csv_to_numpy_no_pandas function to read the coordinate and temperature data according to the format of the CSV file, and convert the read data into a NumPy array;
[0045] Step 3.4.2: In the Temp function, obtain the Abaqus model object, assembly, and instance sequentially through mdb.models;
[0046] Step 3.4.3: Traverse the table data, and based on the size and position information in the table, use the boundary instrument and searcher set by getByBoundingBox to select elements and nodes in a partitioned and density-divided manner, and create a named collection for the selected elements and nodes;
[0047] Step 3.4.4: Call the remove_common_elements function to remove common elements between adjacent sets, ensuring that the elements in each set are unique;
[0048] Step 3.4.5: Use the sequenceFromLabels method to create a new collection of elements based on the labels of elements or nodes, name the new collection, and store it in a list;
[0049] Step 3.4.6: Use the bounding box and search tool set by getByBoundingBox to further filter the elements and nodes in the collection to ensure that they are within the specified radius.
[0050] Step 3.4.7: Create a region and create an amplitude based on the temperature data and time step. Call the Temperature function in Abaqus to set the temperature, and specify the distribution type, cross-sectional distribution, and amplitude.
[0051] Step 3.4.8: Use the counter variable count to count the number of points where the temperature was successfully set, print the output, and display the "Task Complete" message;
[0052] Step 3.5: In ABAQUS, set the analysis step, boundary conditions, and loads in sequence, create a new job, submit the model calculation, and obtain the corresponding structural analysis results under the refined non-uniform temperature field.
[0053] Preferably, in step 3, the boundary instrument is implemented through the Table parameter and the regionToolset.Region function. It is a cuboid region that radiates outward from the fire source location and is used to define the partitions in the model. Each boundary instrument is used in conjunction with a corresponding search tool to search for spatial coordinates and realize the functions of partitioning and density-based temperature assignment.
[0054] The searcher iterates through the table, uses the getByBoundingBox method to define a subspace region within each defined boundary instrument space, uses the selE and selN lists to traverse and store all cells and nodes within the region, and assigns the temperature of the same spatial coordinates found in the table to the corresponding cell or node.
[0055] The fire source location is the coordinate position of the center of the flame where the fire initially occurred within the structural space.
[0056] The beneficial effects of this invention are as follows: It eliminates the need to ensure mesh consistency between FDS and ABAQUS software, improving computational flexibility and model applicability; it allows for flexible adjustment of the temperature-assigned region size and density in ABAQUS, optimizing computational accuracy and convergence; and it is applicable to various irregularly shaped or curved irregular structures, meeting the needs of numerical models for fire scenarios and damage analysis in diverse building structural designs. In summary, this invention provides a more efficient and accurate analysis method for fire simulation and thermo-mechanical coupling simulation of complex irregular structures such as long-span bridges. Attached Figure Description
[0057] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0058] Figure 1 This is a schematic diagram of the FDS to ABAQUS heating process and geometry provided by the present invention;
[0059] Figure 2 This is a schematic diagram of the FDS to ABAQUS temperature application process provided by the present invention;
[0060] Figure 3 This is a schematic diagram of the content and format of the preprocessed temperature field data in the FDS to ABAQUS heating process provided by the present invention. Detailed Implementation
[0061] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0062] See Figures 1-2 This embodiment provides a Python-enabled method for bridging FDS to ABAQUS non-uniform temperature fields, including the following steps:
[0063] Step 1: Use CAD / SolidWorks to bridge ABAQUS and FDS, convert the model format, and successfully import the model from ABAQUS into FDS, so as to achieve accurate modeling and high-precision simulation of fire dynamics of complex structures in FDS.
[0064] The specific method is as follows: import the model from ABAQUS into FDS for fire dynamics simulation, which includes the following steps:
[0065] Step 1.1: In ABAQUS, export the refined structural model partitions as .step format;
[0066] Step 1.2: Import the .step format model into Solidworks software and export it as a .sat format model (version 6.0 or earlier);
[0067] Step 1.3: Import models in .sat format (version 6.0 and below) into the CAD software, and export the models in .dwg format;
[0068] Step 1.4: Import each part of the .dwg format model into FDS software, and complete the assembly of the entire model in FDS;
[0069] Step 1.5: Set the fire source power, heat release rate, mesh size and boundary conditions in FDS, and arrange thermocouple measuring points and 3D / 2D slices as required.
[0070] Step 2: Using Python functions such as os.chdir(path), range(start, stop, stop), subprocess.run(command, input=input, text=text, check=check), csv.writer(csvfile), and df.T, automatically and in batches extract the key information necessary for mapping the non-uniform temperature field to ABAQUS from the fire temperature distribution cloud map results calculated by FDS. This information includes the temperature change amplitude of nodes over time and their corresponding precise three-dimensional spatial coordinates. The extracted data is then preprocessed and stored in a data format that ABAQUS can directly read and process.
[0071] Specifically, the following steps are included:
[0072] Step 2.1: Call the fds2asciia program that comes with FDS to automatically extract and store the temperature of each node in the process;
[0073] Step 2.1.1: Set base_path to the directory path for storing FDS simulation results;
[0074] Step 2.1.2: Set folder_name to the name of the folder from which the FDS simulation results will be extracted;
[0075] Step 2.1.3: Use the os.chdir(base_path) function to switch the working directory to base_path so that the fds2ascii program can be called and executed later;
[0076] Step 2.1.4: Define the time interval and the total time duration to limit the time interval and time range for data extraction;
[0077] Step 2.1.5: Use the range(0, duration, interval) function to loop through the time interval from 0 to duration, increasing the time interval by interval seconds each time; for each time interval, calculate the end time end_time and set it as start_time + interval time;
[0078] Step 2.1.6: Create a list fds2ascii_command containing the path to the fds2ascii executable file and the required parameters, including: Job ID, SLCF file type, sampling factor, domain size limit, start and end times of averaging time, number of variables to read, index of selected variables, and output file name;
[0079] Step 2.1.7: Call the subprocess.run method to execute commands sequentially in fds2ascii; after the loop ends, the time-temperature data for all time periods will be exported.
[0080] Step 2.2: Extract node spatial coordinate information from the FDS model command stream;
[0081] Step 2.2.1: Define txt_file_path (path to the input text file) and csv_file_path (path to the output CSV file) using the extract_data function;
[0082] Step 2.2.2: Define a regular expression pattern to match a specific format in the FDS model command stream.txt file, including the DEVC ID and XYZ coordinates;
[0083] Step 2.2.3: Use the open function to open the text file corresponding to the model command stream in read mode ('r') and UTF-8 encoding, and iterate through each line in the file;
[0084] Step 2.2.4: Use pattern.search(line) to find content that matches the regular expression, extract the four values devc_id, x, y, and z, and add them as a list to the data list;
[0085] Step 2.2.5: Use the open function to open the specified CSV file in write mode ('w'), and set newline=" to avoid blank lines;
[0086] Step 2.2.6: Create a CSV writer object `writer`, and use `writer.writerow` to write the table header ['DEVC ID','X','Y','Z'];
[0087] Step 2.2.7: Iterate through the data list and use the writer.writerow method to write data line by line;
[0088] Step 2.2.8: Save the data to the specified CSV file path;
[0089] Step 2.3: Preprocess the extracted ambient temperature data and node spatial coordinate information, match the temperature of each node with its corresponding spatial coordinates, process it into temperature data that changes over time with geometric spatial location labels, and store it as a .csv file.
[0090] Step 3: In ABAQUS software, the preprocessed temperature data results are automatically recognized and imported into the corresponding spatial coordinate positions of the model;
[0091] By changing the values of predefined variables, the corresponding assembly name, model name, and application analysis step of the model to be imported are locked; the coordinates (x, y, z) of the fire source location are given by the position function, and the spatial position of the boundary instrument and the search tool is adjusted by associating with the regionToolset.Region function;
[0092] The size of the defined spatial regions of the "boundary instrument" and "searcher" can be adjusted by inputting appropriate xMin, xMax, yMin, yMax, zMin, and zMax into the regionToolset.Region function; ultimately, this allows for flexible adjustment of the size and density of the heated region in ABAQUS, improving computational accuracy and efficiency.
[0093] Specifically, the extracted non-uniform temperature field data results are automatically identified and imported into the ABAQUS model, which includes the following steps:
[0094] Step 3.1: In the meshing module of ABAQUS, create mesh components for the entire model to form new mesh-type components;
[0095] Step 3.2: Delete the original assembly in the assembly module and reassemble the mesh component formed in step 3.1;
[0096] Step 3.3: Move the .csv file containing the preprocessed temperature data with geometric spatial location labels from Step 2 to the same path as the .cae file of the ABAQUS model that will be temperature-assigned;
[0097] Step 3.4: Import the extracted non-uniform temperature field data into the ABAQUS model;
[0098] Step 3.4.1: In the Temp function, call the extract_csv_to_numpy_no_pandas function to read the coordinate and temperature data according to the format of the CSV file (determined by the csv_ways parameter), and convert the read data into a NumPy array;
[0099] Step 3.4.2: In the Temp function, obtain the Abaqus model object, assembly, and instance sequentially through mdb.models[modelname];
[0100] Step 3.4.3: Traverse the table data, and based on the size and position information in the table, use the boundary instrument and searcher set by getByBoundingBox to select elements and nodes in a partitioned and density-divided manner, and create a named collection for the selected elements and nodes;
[0101] Step 3.4.4: Call the remove_common_elements function to remove common elements between adjacent sets, ensuring that the elements in each set are unique;
[0102] Step 3.4.5: Use the sequenceFromLabels method to create a new collection of elements based on the labels of elements or nodes, name the new collection, and store it in a list;
[0103] Step 3.4.6: Use the bounding box and search tool set by getByBoundingBox to further filter the elements and nodes in the collection to ensure that they are within the specified radius.
[0104] Step 3.4.7: Create a region and create an amplitude based on the temperature data and time step. Use the Temperature function in Abaqus to set the temperature, and specify the distribution type, cross-sectional distribution, and amplitude.
[0105] Step 3.4.8: Use the counter variable count to count the number of points where the temperature was successfully set, print the output, and display the "Task Complete" message;
[0106] Step 3.5: In ABAQUS, set the analysis step, boundary conditions, and loads in sequence, create a new job, submit the model calculation, and obtain the corresponding structural analysis results under the refined non-uniform temperature field.
[0107] In step 3, the boundary instrument is implemented through the Table parameter and the regionToolset.Region function. It is a cuboid region that radiates outward from the fire source location and is used to define the partitions in the model. Each boundary instrument is used in conjunction with a corresponding search tool to capture spatial coordinates and realize the functions of partitioning and density-based temperature assignment.
[0108] The searcher iterates through the table, uses the getByBoundingBox method to define a subspace region within each defined boundary instrument space, uses the selE and selN lists to traverse and store all cells and nodes within the region, and assigns the temperature of the same spatial coordinates found in the table to the corresponding cell or node.
[0109] The fire source location is the coordinate position of the center of the flame where the fire initially occurred within the structural space.
[0110] This method integrates the FDS fire dynamics simulation module, the temperature data preprocessing module, and the FDS to ABAQUS non-uniform temperature field mapping module, realizing intelligent processing of the entire process from fire scene establishment to temperature assignment of complex irregular structures in non-uniform temperature fields.
[0111] The FDS fire dynamics simulation module accurately simulates fire scenarios and extracts key temperature data. The temperature data preprocessing module transforms the extracted raw data into temperature rise curves with geometric spatial location labels that change over time, providing an accurate data foundation for subsequent non-uniform temperature field mapping.
[0112] The ABAQUS non-uniform temperature field mapping module adjusts the temperature-affected regions and densities through the "boundary instrument" and "searcher," mapping temperature data in batches and accurately onto the model in ABAQUS, thus achieving efficient and intelligent partitioning of the temperature field.
[0113] Compared with existing technologies, this invention eliminates the need to ensure mesh consistency in both FDS and ABAQUS software, improving computational flexibility and model applicability. It allows for flexible adjustment of the temperature-affected region size and density in ABAQUS, optimizing computational accuracy and convergence. Furthermore, it is applicable to various irregularly shaped or curved structures, meeting the needs of numerical models for fire scenarios and damage analysis in diverse building structural designs. In summary, this invention provides a more efficient and accurate analysis method for fire simulation and thermo-mechanical coupling simulation of complex irregular structures such as long-span bridges.
[0114] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.
Claims
1. A Python-enabled bridging method for FDS to ABAQUS non-uniform temperature fields, characterized in that, Includes the following steps: Step 1: Use CAD / SolidWorks to bridge ABAQUS and FDS, convert the model format, and successfully import the model from ABAQUS into FDS, so as to achieve accurate modeling and high-precision simulation of fire dynamics of complex structures in FDS. Step 2: Using functions in the Python language, automatically and in batches extract the key information necessary to map the non-uniform temperature field to ABAQUS from the fire temperature distribution cloud map results calculated by FDS, including the temperature change amplitude of the nodes over time and their corresponding precise three-dimensional spatial coordinates; preprocess the extracted data and store it in a data format that ABAQUS can directly read and process. Step 3: In ABAQUS software, the preprocessed temperature data results are automatically recognized and imported into the corresponding spatial coordinate positions of the model; By changing the predefined variable assignments, the corresponding assembly name, model name, and application analysis step of the model to be imported are locked; the coordinates (x, y, z) of the fire source location are given by the position function, and the spatial position of the boundary instrument and the search tool is adjusted by associating with the regionToolset.Region function; The size of the defined spatial regions of the "boundary instrument" and "searcher" can be adjusted by inputting appropriate xMin, xMax, yMin, yMax, zMin, and zMax into the regionToolset.Region function; ultimately, this allows for flexible adjustment of the size and density of the heated region in ABAQUS, improving computational accuracy and efficiency.
2. The method as described in claim 1, characterized in that, Step 1 involves importing the model from ABAQUS into FDS for fire dynamics simulation, specifically including the following steps: Step 1.1: In ABAQUS, export the refined structural model partitions as .step format; Step 1.2: Import the .step format model into Solidworks software and export it as a .sat format model (version 6.0 or earlier); Step 1.3: Import models in .sat format (version 6.0 and below) into the CAD software, and export the models in .dwg format; Step 1.4: Import each part of the .dwg format model into FDS software, and complete the assembly of the entire model in FDS; Step 1.5: Set the fire source power, heat release rate, mesh size and boundary conditions in FDS, and arrange thermocouple measuring points and 3D / 2D slices as required.
3. The method as described in claim 2, characterized in that, Step 2 involves the automated, batch extraction and preprocessing of key information from non-uniform temperature fields, specifically including the following steps: Step 2.1: Call the fds2asciia program that comes with FDS to automatically extract and store the temperature of each node in the process; Step 2.1.1: Set base_path to the directory path for storing FDS simulation results; Step 2.1.2: Set folder_name to the name of the folder from which the FDS simulation results will be extracted; Step 2.1.3: Use the os.chdir function to switch the working directory to base_path so that the fds2ascii program can be called and executed later; Step 2.1.4: Define the time interval and the total time duration to limit the time interval and time range for data extraction; Step 2.1.5: Use the range function to loop through the time interval from 0 to duration, increasing the interval by seconds each time; for each time interval, calculate the end time end_time and set it as start_time + interval time; Step 2.1.6: Create a list fds2ascii_command containing the path to the fds2ascii executable file and the required parameters, including: Job ID, SLCF file type, sampling factor, domain size limit, start and end times of averaging time, number of variables to read, index of selected variables, and output file name; Step 2.1.7: Call the subprocess.run method to execute commands sequentially in fds2ascii; after the loop ends, the time-temperature data for all time periods will be exported. Step 2.2: Extract node spatial coordinate information from the FDS model command stream; Step 2.2.1: Using the extract_data function, define txt_file_path (the path to the input text file) and csv_file_path (the path to the output CSV file); Step 2.2.2: Define a regular expression pattern to match a specific format in the FDS model command stream.txt file, including the DEVC ID and XYZ coordinates; Step 2.2.3: Use the open function to open the text file corresponding to the model command stream in read mode and UTF-8 encoding, and traverse each line in the file; Step 2.2.4: Use pattern.search to find content that matches the regular expression, extract the four values devc_id, x, y, and z, and add them as a list to the data list; Step 2.2.5: Use the open function to open the specified CSV file in write mode, and set newline='' to avoid blank lines; Step 2.2.6: Create a CSV writer object `writer`, and use `writer.writerow` to write the table header ['DEVCID', 'X', 'Y', 'Z']; Step 2.2.7: Iterate through the data list and use the writer.writerow method to write data line by line; Step 2.2.8: Save the data to the specified CSV file path; Step 2.3: Preprocess the extracted ambient temperature data and node spatial coordinate information, match the temperature of each node with its corresponding spatial coordinates, process it into temperature data that changes over time with geometric spatial location labels, and store it as a .csv file.
4. The method as described in claim 3, characterized in that, In step 3, the extracted non-uniform temperature field data results are automatically identified and imported into the ABAQUS model, specifically including the following steps: Step 3.1: In the meshing module of ABAQUS, create mesh components for the entire model to form new mesh-type components; Step 3.2: Delete the original assembly in the assembly module and reassemble the mesh component formed in step 3.1; Step 3.3: Move the .csv file containing the preprocessed temperature data with geometric spatial location labels from Step 2 to the same path as the .cae file of the ABAQUS model that will be temperature-assigned; Step 3.4: Import the extracted non-uniform temperature field data into the ABAQUS model; Step 3.4.1: In the Temp function, call the extract_csv_to_numpy_no_pandas function to read the coordinate and temperature data according to the format of the CSV file, and convert the read data into a NumPy array; Step 3.4.2: In the Temp function, obtain the Abaqus model object, assembly, and instance sequentially through mdb.models; Step 3.4.3: Traverse the table data, and based on the size and position information in the table, use the boundary instrument and searcher set by getByBoundingBox to select elements and nodes in a partitioned and density-divided manner, and create a named collection for the selected elements and nodes; Step 3.4.4: Call the remove_common_elements function to remove common elements between adjacent sets, ensuring that the elements in each set are unique; Step 3.4.5: Use the sequenceFromLabels method to create a new collection of elements based on the labels of elements or nodes, name the new collection, and store it in a list; Step 3.4.6: Use the bounding box and search tool set by getByBoundingBox to further filter the elements and nodes in the collection to ensure that they are within the specified radius. Step 3.4.7: Create a region and create an amplitude based on the temperature data and time step. Call the Temperature function in Abaqus to set the temperature, and specify the distribution type, cross-sectional distribution, and amplitude. Step 3.4.8: Use the counter variable count to count the number of points where the temperature was successfully set, print the output, and display the "Task completed" message; Step 3.5: In ABAQUS, set the analysis step, boundary conditions, and loads in sequence, create a new job, submit the model calculation, and obtain the corresponding structural analysis results under the refined non-uniform temperature field.
5. The method as described in claim 1, characterized in that, In step 3, the boundary instrument is implemented through the Table parameter and the regionToolset.Region function. It is a cuboid region that radiates outward from the fire source location and is used to define the partitions in the model. Each boundary instrument is used in conjunction with a corresponding search tool to capture spatial coordinates and realize the functions of partitioning and density-based temperature assignment. The searcher iterates through the table, uses the getByBoundingBox method to define a subspace region within each defined boundary instrument space, uses the selE and selN lists to traverse and store all the cells and nodes within the cuboid region, and assigns the temperature of the same spatial coordinates found in the table to the corresponding cell or node. The fire source location is the coordinate position of the center of the flame where the fire initially occurred within the model's structural space.