WO2021117967A1 - Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램 - Google Patents

Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
WO2021117967A1
WO2021117967A1 PCT/KR2019/018583 KR2019018583W WO2021117967A1 WO 2021117967 A1 WO2021117967 A1 WO 2021117967A1 KR 2019018583 W KR2019018583 W KR 2019018583W WO 2021117967 A1 WO2021117967 A1 WO 2021117967A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
particle
information
reference information
cell
Prior art date
Application number
PCT/KR2019/018583
Other languages
English (en)
French (fr)
Inventor
송상민
김은수
이시우
Original Assignee
이에이트 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=74127720&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2021117967(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 이에이트 주식회사 filed Critical 이에이트 주식회사
Priority to CN201980102957.8A priority Critical patent/CN114830118A/zh
Priority to US17/784,674 priority patent/US20230019740A1/en
Publication of WO2021117967A1 publication Critical patent/WO2021117967A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/28Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/25Design optimisation, verification or simulation using particle-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/08Fluids

Definitions

  • the present invention relates to an apparatus, method, and computer program for performing fluid analysis simulation based on smoothed particle hydrodynamics (SPH).
  • SPH smoothed particle hydrodynamics
  • Computational Fluid Dynamics is a field of fluid mechanics that calculates the dynamic motion of a fluid using a computer in a numerical way.
  • Computational fluid dynamics is a partial differential equation, Naiver-Stokes Equation (FDM) (Finite Difference Method), FEM (Finite Element Method), FVM (Finite Volume Method) and SPH (Smoothed Particle Hydrodynamics) methods such as Calculate the flow of the fluid by discretizing it through
  • Navier-Stokes equation There are two methods for calculating the Navier-Stokes equation: a grid-based method that discretizes a spatial domain into a small mesh or grid and a particle-based method that expresses a fluid as a set of multiple particles.
  • Particle-based methods include Smoothed Particle Hydrodynamics (SPH), Moving Particle Semi-implicit (MPS), and Lattice Boltzmann Method (LBM).
  • SPH Smoothed Particle Hydrodynamics
  • MPS Moving Particle Semi-implicit
  • LBM Lattice Boltzmann Method
  • the SPH-based fluid analysis can perform the analysis of multiphase flow including two or more of gas, liquid, and solid relatively accurately.
  • Korean Patent No. 1700829 discloses a configuration for searching for neighboring particles of each particle in units of cells and a configuration for distributing cells to several computing devices.
  • An object of the present invention is to provide a fluid analysis simulation device, method and computer program that can search for adjacent particles.
  • An object of the present invention is to provide a fluid analysis simulation apparatus, method, and computer program using a plurality of processors.
  • an embodiment of the present invention comprises a first processor and a second processor in an SPH (Smoothed Particle Hydrodynamics)-based fluid analysis simulation device using a plurality of processors,
  • the first processor divides a first space allocated to the first processor into a plurality of cells, generates first cell reference information based on information on the plurality of cells in which the first space is partitioned, and the first space Generates first particle reference information based on the information of the particles included in the second processor
  • the second processor divides the second space allocated to the second processor into a plurality of cells, the second space is divided into a plurality of cells Generates second cell reference information based on cell information, and generates second particle reference information based on information on particles included in the second space
  • the first processor and the second processor include: exchanging the plurality of particles with each other based on the first cell reference information, the first particle reference information, the second cell reference information and the second particle reference information, and calculating flow data between the
  • the first processor includes a particle information generator for generating the first particle reference information based on the location information of the plurality of particles and the cell index for the first space, and the cell index, each cell index and a cell information generator configured to generate the first cell reference information including inclusion information generated based on the number of particles included in a cell corresponding to .
  • the cell reference information may further include accumulated information generated based on the number of particles included in a cell corresponding to a cell index before each cell index.
  • the fluid analysis simulation apparatus further comprises a third processor, wherein the third processor is an integrated cell generating integrated cell reference information based on the first cell reference information and the second cell reference information. and a cell management unit including an information generating unit, and a particle management unit including an integrated particle information generating unit generating integrated particle reference information based on the first particle reference information and the second particle reference information.
  • the cell manager derives the number of particles located in the first space and the number of particles located in the second space based on the integrated cell reference information, the number of particles located in the first space and
  • the method may further include a region allocator for allocating the first space to the first processor and allocating the second space to the second processor based on the number of particles located in the second space.
  • the particle management unit identifies the exchange target particle based on the second cell reference information, and based on the accumulated information of the second cell reference information, information on the exchange target particle from the second particle reference information It may further include a particle exchange unit for extracting and instructing movement of the exchange object particle to the first processor based on the information on the exchange object particle.
  • the first processor may further include a particle exchange performing unit that receives data on the exchange target particle from the second processor.
  • the particle information generating unit updates the first particle reference information based on the information of the exchange target particle, and the cell information generating unit generates the first cell reference information based on the exchange target particle information can be updated.
  • the first processor and the second processor may be a graphics processing unit (GPU), and the third processor may be a central processing unit (CPU).
  • GPU graphics processing unit
  • CPU central processing unit
  • Another embodiment of the present invention is a method performed in a smoothed particle hydrodynamics (SPH)-based fluid analysis simulation apparatus including a first processor and a second processor, wherein the method is assigned to the first processor by the first processor. partitioning the first space into a plurality of cells, generating, by the first processor, first cell reference information based on information on the plurality of cells in which the first space is partitioned, by the first processor Generating first particle reference information based on information on particles included in the first space, dividing the second space allocated to the second processor by the second processor into a plurality of cells, the second processor generating second cell reference information based on information on a plurality of cells in which the second space is partitioned by the second processor, based on information on particles included in the second space by the second processor.
  • SPH smoothed particle hydrodynamics
  • a simulation method can be provided.
  • Another embodiment of the present invention is a computer program stored in a medium including a sequence of instructions for performing a fluid analysis simulation based on smoothed particle hydrodynamics (SPH) using a plurality of processors, wherein the computer program is executed by a computing device.
  • SPH smoothed particle hydrodynamics
  • the plurality of processors include a first processor and a second processor, dividing an analysis space into a first space and a second space, allocating the first space to the first processor, and assigning the second space to the Allocating to a second processor, partitioning the first space into a plurality of cells by the first processor, and first cell reference information based on information on a plurality of cells in which the first space is partitioned by the first processor generating, by the first processor, generating first particle reference information based on information on particles included in the first space, and partitioning the second space into a plurality of cells by the second processor, Generates second cell reference information based on information on a plurality of cells in which the second space is partitioned by the second processor, and based on information on particles included in the second space by the second processor generate second particle reference information, wherein each of the first processor and the second processor is configured according to the first cell reference information, the first particle reference information, the second cell reference information, and the second particle reference information and a sequence of instructions for exchanging
  • any one of the above-described problem solving means of the present invention it is possible to provide a fluid analysis simulation apparatus, method, and computer program capable of quickly searching for neighboring particles and efficiently exchanging information between a plurality of processors.
  • FIG. 1 is a block diagram of a fluid analysis simulation apparatus using a plurality of processors according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of a fluid analysis simulation apparatus according to an embodiment of the present invention.
  • FIG. 3 exemplarily shows a process of generating particle reference information and cell reference information according to an embodiment of the present invention.
  • FIG. 4 is a diagram for explaining a method of searching for a neighboring particle according to an embodiment of the present invention.
  • FIG. 5 exemplarily illustrates particle reference information and cell reference information generated by each of a plurality of processors according to an embodiment of the present invention.
  • FIG. 6 exemplarily shows a process of generating integrated cell reference information and integrated particle reference information according to an embodiment of the present invention.
  • FIG. 7 is a view for explaining a process in which a plurality of processors exchange particles with each other according to an embodiment of the present invention.
  • FIG. 8 is a view for explaining a process in which a plurality of processors exchange particles with each other according to an embodiment of the present invention.
  • FIG. 9 is a flowchart of a fluid analysis simulation method according to an embodiment of the present invention.
  • a "part” includes a unit realized by hardware, a unit realized by software, and a unit realized using both.
  • one unit may be implemented using two or more hardware, and two or more units may be implemented by one hardware.
  • ' ⁇ unit' is not limited to software or hardware, and ' ⁇ unit' may be configured to be in an addressable storage medium or may be configured to reproduce one or more processors.
  • ' ⁇ ' denotes components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables.
  • components and ' ⁇ units' may be combined into a smaller number of components and ' ⁇ units' or further separated into additional components and ' ⁇ units'.
  • components and ' ⁇ units' may be implemented to play one or more CPUs in a device or secure multimedia card.
  • Some of the operations or functions described as being performed by the terminal or device in the present specification may be instead performed by a server connected to the terminal or device. Similarly, some of the operations or functions described as being performed by the server may also be performed in a terminal or device connected to the server.
  • FIG. 1 is a block diagram of a fluid analysis simulation apparatus using a plurality of processors according to an embodiment of the present invention.
  • 1 exemplarily shows a plurality of processors included in a fluid analysis simulation apparatus.
  • the fluid analysis simulation apparatus 100 may include a first processor 110 , a second processor 120 , and a third processor 130 .
  • the number of processors that the fluid analysis simulation apparatus 100 may include may be less or more than the case illustrated in FIG. 1 .
  • the fluid analysis simulation apparatus 100 may include a server, a desktop, a laptop computer, a kiosk (KIOSK) and a smartphone, and a tablet PC.
  • the fluid analysis simulation apparatus 100 is not limited to those exemplified above. That is, the fluid analysis simulation apparatus 100 may include all devices equipped with a processor for performing an SPH-based fluid analysis simulation method to be described later.
  • the fluid analysis simulation apparatus 100 performs a three-dimensional flow analysis of a fluid. That is, the fluid analysis simulation apparatus 100 models the 3D simulation area and the plurality of particles located in the 3D simulation area, and analyzes the flow of the plurality of particles in the 3D simulation area.
  • the simulation region and particles are expressed in two dimensions.
  • the fluid analysis simulation apparatus 100 may perform a simulation for analyzing a fluid based on smoothed particle hydrodynamics (SPH).
  • SPH Smoothed Particle Hydrodynamics
  • CFD Computational Fluid Dynamics
  • SPH may express a fluid to be analyzed as one or more particles.
  • the SPH can calculate a physical quantity of a particle while tracking each particle, and perform a fluid analysis simulation based on the calculation result.
  • the first processor 110 , the second processor 120 , and the third processor 130 may each be an information processing device capable of performing an independent calculation operation.
  • One of the first processor 110 , the second processor 120 , and the third processor 130 may transmit information to the other or receive information from the other.
  • the first processor 110 and the second processor 120 may be a graphics processing unit (GPU)
  • the third processor 130 may be a central processing unit (CPU).
  • the fluid analysis simulation apparatus 100 includes an input unit 210 , a space forming unit 220 , a particle search unit 230 , a cell management unit 240 , a particle management unit 250 , and a particle exchange performing unit ( 260) and a flow data calculation unit 270 may be included.
  • each of the first processor 110 and the second processor 120 includes a space forming unit 220 , a particle searching unit 230 , a particle exchange performing unit 260 , and a flow data calculating unit 270 .
  • the third processor 130 may include an input unit 210 , a cell management unit 240 , and a particle management unit 250 .
  • the configuration of each processor 110 , 120 , 130 included in the fluid analysis simulation apparatus 100 is not limited thereto.
  • the input unit 210 may receive data regarding a plurality of particles for fluid analysis simulation.
  • the input unit 210 may receive data regarding a plurality of particles from an external device such as a user terminal.
  • the input unit 210 may receive data regarding a plurality of particles through communication with an external server.
  • the data on the plurality of particles may include information on an analysis target required to perform a fluid analysis simulation.
  • the data on the plurality of particles may include information on physical properties of each particle, for example, at least one of a particle radius, mass, density, viscosity, velocity, acceleration, and position of each particle.
  • the fluid analysis simulation apparatus 100 may further include a modeling unit (not shown).
  • the modeling unit may generate a structure model in which a plurality of particles are located.
  • the modeling unit may generate, for example, a mesh-based structure model including a plurality of polygons.
  • the modeling unit may generate a plurality of particles based on a position (center coordinate) of each particle and a particle radius.
  • the structure model may be generated, for example, based on a mesh composed of a plurality of triangles.
  • the space forming unit 220 may partition a space in which a plurality of particles exist into a plurality of cells.
  • the space forming unit 220 may generate a cell index based on a position of a cell in a space in which a plurality of particles exist.
  • the space forming unit 220 may divide a space in which a plurality of particles 10 exist into a plurality of cells 20 .
  • the space forming unit 220 may determine the size of the cell 20 based on the radius of the particle 10 .
  • the space forming unit 220 may generate a cell index 30 , which is a unique number assigned to each of the plurality of cells 20 . For example, when a space in which a plurality of particles 10 exist is partitioned into nine cells 20 , numbers 0 to 8 for each cell 20 based on the position of the cell 20 in the space By assigning one of them in order, the cell index 30 may be generated.
  • the space forming unit 220 may generate a particle index, which is a unique number assigned to each of the plurality of particles. Referring back to FIG. 3A , when data regarding the eight particles 10 is received, the space forming unit 220 is, for example, sequentially assigned one of the numbers 0 to 7 for each particle 10 . A particle index can be created.
  • the particle index may be included in data about a plurality of particles received by the input unit 210 .
  • the particle search unit 230 may search for at least one neighboring particle adjacent to the target particle in a space in which a plurality of particles exist.
  • the particle search unit 230 may include a particle information generation unit (not shown) and a cell information generation unit (not shown).
  • the particle information generator may generate particle reference information regarding a plurality of particles.
  • the particle information generating unit may secure a memory based on the number of the plurality of particles before generating the particle reference information.
  • the particle information generator may generate the particle reference information based on the location information and the cell index of the plurality of particles.
  • the particle reference information may include, for example, a particle index and a cell index including a particle corresponding thereto.
  • the particle information generating unit may secure a memory 310 capable of storing eight pieces of information, corresponding to the number of a plurality of particles, before generating the particle reference information.
  • the particle information generator may generate particle reference information including a particle index 311 and a cell index 312 including a particle corresponding thereto.
  • the particle information generating unit may generate particle reference information including '3', which is a particle index, and '7', which is a cell index including a corresponding particle.
  • the particle information generator may sort the particle reference information in an ascending order based on the cell index. Referring to FIG. 3C , the particle information generator may sort particle reference information for each of the plurality of particles stored in the memory 310 in ascending order based on the cell index 312 of 0 and 1 or more.
  • the cell information generator may generate cell reference information regarding a plurality of cells.
  • the cell reference information may include inclusion information and accumulation information.
  • the cell information generator may secure a memory based on the number of a plurality of cells before generating the cell reference information. For example, the cell information generator may secure a memory capable of storing information corresponding to the total number of cells. The cell reference information corresponding to one cell may use a memory storing one piece of information.
  • the cell information generator may generate inclusion information based on a cell index and the number of particles included in a cell corresponding to each cell index. Referring to FIGS. 3A and 3D , the cell information generator may secure a memory capable of storing nine pieces of information, which is the total number of cells. The cell information generator may generate the inclusion information 321 based on the number of particles included in a cell corresponding to each cell index 320 . For example, since there are two particles included in the cell corresponding to the cell index 3, the inclusion information may be generated as '2'.
  • the cell information generator may generate cumulative information based on the number of particles included in a cell corresponding to a cell index before each cell index. Referring back to FIGS. 3A and 3D , the cell information generator may generate the accumulated information 322 based on the number of particles included in a cell corresponding to a cell index before each cell index 320 . For example, since there is one particle included in the cell corresponding to the cell index prior to cell index 2, that is, the cell corresponding to cell index 0, and one particle is included in the cell corresponding to cell index 1, cumulative information of cell index 2 may be generated as '2'.
  • the particle search unit 230 may search for at least one neighboring particle adjacent to the target particle based on the aforementioned particle reference information and cell reference information.
  • the search for neighboring particles may be used to exchange particles among a plurality of processors, which will be described later.
  • the search for neighboring particles may be used to calculate flow data, which will be described later.
  • the particle search unit 230 may search for a neighboring cell based on a cell index corresponding to a cell in which the target particle is located. Referring back to FIG. 3A , for example, with respect to a target particle having a particle index of 1, a neighboring cell has cell indices 0, 1, 2, 3, 5 based on 4, which is the cell index of the cell in which the target particle is located. , 6, 7, and 8 may be derived as cells corresponding to each other.
  • the particle search unit 230 may search for a neighboring particle based on cell reference information corresponding to a cell in which the target particle is located.
  • the particle search unit 230 may search for a neighboring particle based on cell reference information corresponding to the neighboring cell.
  • the particle search unit 230 may search for a neighboring particle based on inclusion information and accumulation information of the neighboring cell. For example, when a plurality of neighboring cells are derived with respect to a target particle, a neighboring particle may be searched based on inclusion information and accumulation information of each neighboring cell.
  • the particle search unit 230 may track the first memory location of the particle reference information corresponding to the neighbor particle based on the accumulated information corresponding to the neighbor cell.
  • the particle search unit 230 may track a plurality of second memory locations of the particle reference information corresponding to the neighbor particle based on the inclusion information corresponding to the neighbor cell.
  • 4 is a diagram for explaining a method of searching for a neighboring particle according to an embodiment of the present invention.
  • 4A and 4B exemplarily show a process of searching for a neighboring particle of a target particle having a particle index of 1.
  • the neighboring cell of the target particle having the particle index of 1 is based on the cell index of 4 of the cell in which the target particle is located, the cell indices 0, 1, 2, 3, 5, 6, 7 and 8 may be derived from the cell corresponding to the cell.
  • the particle search unit 230 may search for a neighboring particle of the target particle based on the cell reference information corresponding to each cell in which the target particle is located and the derived neighboring cell.
  • the fluid analysis simulation apparatus 100 may search for neighboring particles in the same cell based on cell reference information corresponding to the cell (cell index 4) in which the target particle is located.
  • the fluid analysis simulation apparatus 100 may extract accumulated information 4 corresponding to a cell having a cell index of 4. From this, the fluid analysis simulation apparatus 100 may track that the first memory location of the particle reference information corresponding to the neighboring particle in the same cell is '4'.
  • the fluid analysis simulation apparatus 100 may extract included information 1 corresponding to a cell having a cell index of 4. From this, the fluid analysis simulation apparatus 100 may track the second memory location of the particle reference information corresponding to the neighboring particle in the same cell.
  • the second memory location means a location of a plurality of additional memories that may contain one particle, including the particle corresponding to the first memory location.
  • the inclusion information is '1', only the target particle is located in a cell having a cell index of 4, and thus the second memory location is not tracked.
  • the fluid analysis simulation apparatus 100 may extract the particle index 1 included in the cell having the cell index 4 based on the tracked first and second memory locations. That is, the fluid analysis simulation apparatus 100 may confirm that the particle included in the neighboring cell having a cell index of 4 is only itself.
  • the fluid analysis simulation apparatus 100 may search for a neighboring particle in a neighboring cell based on cell reference information corresponding to a cell having a cell index 320 of 3 among neighboring cells of the target particle.
  • the fluid analysis simulation apparatus 100 may extract accumulated information 2 corresponding to a neighboring cell having a cell index of 3 .
  • the cumulative information 2 indicates that two particles exist in a plurality of cells corresponding to the cell index before the cell index 3 (ie, cell indices 0 to 2). From this, the fluid analysis simulation apparatus 100 may track the first memory location of the particle reference information corresponding to the neighboring particle in the neighboring cell.
  • the fluid analysis simulation apparatus 100 checks the location of the memory 2 (ie, the first memory location) including the information of the third particle present in the cell index 3 based on the accumulated information 2, and the neighbor from the memory 2 Particle index 4 of the particle can be extracted.
  • the fluid analysis simulation apparatus 100 may extract included information 2 corresponding to a neighboring cell having a cell index of 3 .
  • the inclusion information 2 indicates that two particles exist in the cell index 3 .
  • the fluid analysis simulation apparatus 100 may track the second memory location of the particle reference information corresponding to the neighboring particle in the neighboring cell.
  • the second memory location means a location of a plurality of additional memories that may contain two particles, including a particle corresponding to the first memory location. That is, the fluid analysis simulation apparatus 100 checks the location of the memory 3 (ie, the second memory location) including the information of the fourth particle present in the cell index 3 based on the inclusion information 2, and the neighbor from the memory 3 The particle index 5 of the particle can be extracted.
  • the fluid analysis simulation apparatus 100 may extract particle indices 4 and 5 included in a neighboring cell having a cell index of 3 based on the tracked first and second memory locations. That is, the fluid analysis simulation apparatus 100 may confirm that the particles included in the neighboring cell having the cell index 3 are particles corresponding to the particle indices 4 and 5 .
  • the fluid analysis simulation apparatus 100 may search for all the neighboring particles by repeating the above-described process with respect to the cell in which the target particle is located and all cells adjacent thereto, that is, cell indices 0 to 8 .
  • the fluid analysis simulation apparatus 100 may utilize inclusion information and accumulation information in searching for neighboring particles of the target particle. That is, the particle reference information is sorted in ascending order based on the cell index, and the accumulated information is generated based on the number of particles included in the cell corresponding to the cell index before each cell index, so the fluid analysis simulation device ( 100) can easily identify neighboring particles of the target particle by using inclusion information and cumulative information.
  • the fluid analysis simulation apparatus 100 does not need to search all memories including particle information in order to search for neighboring particles of the target particle, and includes information and accumulation information corresponding to neighboring cells of the cell in which the target particle is located.
  • the information it is possible to know the memory including the information of the neighboring particle, and by inquiring only the memory, the information of the neighboring particle can be confirmed. For this reason, the processing speed of the fluid analysis and simulation apparatus 100 can be significantly improved.
  • the space in which the plurality of particles exist may include a first space and a second space.
  • the fluid analysis simulation apparatus 100 may allocate a first space to the first processor 110 and a second space to the second processor 120 , for example.
  • each of the first processor 110 and the second processor 120 includes the space forming unit 220 , the particle searching unit 230 , the particle exchange performing unit 260 , and the flow data calculating unit 270 . may include.
  • the space forming unit 220 of the first processor 110 divides the first space into a plurality of cells
  • the cell information generating unit of the first processor 110 divides the first space into a plurality of cells based on the information of the plurality of cells in which the first space is partitioned. to generate the first cell reference information.
  • the particle information generating unit of the first processor 110 may generate first particle reference information based on information on particles included in the first space.
  • the space forming unit 220 of the second processor 120 divides the second space into a plurality of cells
  • the cell information generating unit of the second processor 120 divides the second space into a plurality of cells based on information on the divided cells. to generate the second cell reference information.
  • the particle information generator of the second processor 120 may generate second particle reference information based on information on particles included in the second space.
  • FIG. 5 exemplarily illustrates particle reference information and cell reference information generated by each of a plurality of processors according to an embodiment of the present invention.
  • the first cell reference information 520 to 522 generated based on information on cells corresponding to cell indices 0 to 11 included in the first space by the first processor 110 is is shown
  • the first particle reference information 510 to 513 generated based on the information of the particles P 0 1 to P 0 10 included in the first space by the first processor 110 is shown.
  • the second cell reference information 540 to 542 generated by the second processor 120 based on information on cells corresponding to cell indices 11 to 24 included in the second space is shown
  • second particle reference information 530 to 533 generated based on information on particles P 1 1 to P 1 10 included in the second space by the second processor 120 is shown.
  • the fluid analysis simulation apparatus 100 may further include a third processor 130 .
  • the third processor 130 may include an input unit 210 , a cell manager 240 , and a particle manager 250 .
  • the cell manager 240 of the third processor 130 may include an integrated cell information generator (not shown).
  • the integrated cell information generator of the third processor 130 may generate integrated cell reference information based on the first cell reference information and the second cell reference information.
  • the integrated cell information generator of the third processor 130 includes the first cell reference information (520 to 522 in FIG. 5B ) and the second processor 120 generated by the first processor 110 . ), the integrated cell reference information 610 to 612 may be generated based on the second cell reference information (540 to 542 in FIG. 5C ).
  • the integrated cell information generating unit of the third processor 130 generates integrated cell reference information by summing inclusion information of cells corresponding to the same cell index and cumulative information of cells corresponding to the same cell index, respectively. can do.
  • the particle management unit 250 of the third processor 130 may include an integrated particle information generation unit (not shown).
  • the integrated particle information generator of the third processor 130 may generate the integrated particle reference information based on the first particle reference information and the second particle reference information.
  • the integrated particle information generating unit of the third processor 130 includes the first particle reference information (510 to 513 in FIG. 5B ) and the second processor 120 generated by the first processor 110 . ), the integrated particle reference information 620 to 623 may be generated based on the second particle reference information (530 to 533 in FIG. 5C ) generated by . For example, the integrated particle information generating unit of the third processor 130 may generate the integrated particle reference information by storing the first particle reference information and the second particle reference information in parallel.
  • the integrated particle information generator of the third processor 130 may sort the integrated particle reference information in ascending order based on the cell index. Referring to FIG. 6C , the integrated particle information generator may sort the integrated particle reference information for each of the plurality of particles stored in the memory 620 in ascending order based on the cell indexes 622 of 0 and 1 or more.
  • the cell manager 240 of the third processor 130 may further include a region allocator (not shown).
  • the area allocator of the third processor 130 may derive the number of particles located in the first space and the number of particles located in the second space based on the integrated cell reference information.
  • the area allocating unit of the third processor 130 allocates the first space to the first processor 110 and the second processor 120 based on the number of particles located in the first space and the number of particles located in the second space. may allocate the second space.
  • the area allocating unit of the third processor 130 may allocate a space to each processor based on the number of a plurality of particles based on the accumulated information 612 of the integrated cell reference information.
  • the particle management unit 250 of the third processor 130 may further include a particle exchange unit (not shown).
  • the particle exchange unit of the third processor 130 may identify the exchange target particle based on the second cell reference information. That is, the particle exchange unit of the third processor 130 may identify the exchange target particle based on the space allocated to each processor.
  • the particle exchange unit of the third processor 130 may extract information on the exchange target particle from the second particle reference information based on the accumulated information of the second cell reference information.
  • the particle exchange unit of the third processor 130 may instruct the movement of the exchange object particle to the first processor based on the information on the exchange object particle.
  • the particle exchange unit of the third processor 130 includes memory information 701 for cells in which particles that are not exchanged exist from the first cell reference information 520 to 522 and the particles to be exchanged. It is possible to extract the memory information 702 for the cell in which is present.
  • the particle exchange unit of the third processor 130 may identify a particle to be exchanged based on the memory information 701 .
  • the exchange target particle is a particle managed by the first processor 110 through the first particle reference information 510 to 513 and is located in a cell assigned to the second processor 120 .
  • 7A illustrates a case in which exchange target particles do not exist.
  • the particle exchange unit of the third processor 130 includes memory information 711 for a cell in which a particle to be exchanged exists from the second cell reference information 540 to 542 and a particle that is not an exchange object. It is possible to extract memory information 712 for a cell in which .
  • the particle exchange unit of the third processor 130 may identify a particle to be exchanged based on the memory information 711 .
  • the exchange target particle is a particle that the second processor 120 manages through the second particle reference information 530 to 533 and is located in a cell assigned to the first processor 110 .
  • FIG. 7B illustrates a case in which an exchange target particle exists in a cell corresponding to cell index 11.
  • FIG. 7B illustrates a case in which an exchange target particle exists in a cell corresponding to cell index 11.
  • the particle exchange unit of the third processor 130 determines the memory location of the second particle reference information 530 to 533 from the second cell reference information 540 to 542 based on the memory information 711 . can be tracked
  • the particle exchange unit of the third processor 130 may extract the particle index 9 of the exchange target particle from the second particle reference information 540 to 542 .
  • the particle exchange unit of the third processor 130 receives the exchange target particle from the accumulated information '0' corresponding to the cell index '11' in which the particle of the exchange target particle of the second particle reference information 540 to 542 exists. It can be tracked that the first memory location of the second particle reference information 530 to 533 in which particles of '0' exist is '0'.
  • the particle exchange unit of the third processor 130 tracks the second memory location of the second particle reference information 530 to 533 in which the particle of the exchange target particle exists from the inclusion information '1' corresponding to the cell index '11'. can In FIG. 8A , since the inclusion information is '1', only the target particle is located in the cell having the cell index 11, and thus the second memory location is not tracked.
  • the particle exchange unit of the third processor 130 may instruct the movement of the exchange object particle to the first processor 110 based on the information on the exchange object particle. For example, the particle exchange unit of the third processor 130 checks the particle index 9 of the exchange target particle from the memory corresponding to the first memory location of the second particle reference information 530 to 533, and the second processor 120 ) may instruct to move information about the particle corresponding to the particle index 9 to the first processor 110 .
  • the particle exchange performing unit 260 of the first processor 110 may receive data about the exchange target particle from the second processor 120 .
  • the particle information generator of the first processor 110 may update the first particle reference information based on information on the exchange target particle.
  • the cell information generator of the first processor 110 may update the first cell reference information based on the information of the exchange target particle.
  • the particle information generator of the first processor 110 receives data about a particle corresponding to a particle index 9, which is a particle to be exchanged, from the second processor 120 , and first particle reference information (510 to 513) may be updated.
  • the particle information generating unit of the first processor 110 updates the first particle reference information 510 to 513 to include the newly assigned particle index 11 for the exchanged particle and the cell index 11 of the cell containing the exchanged particle.
  • the cell information generator of the first processor 110 may update inclusion information and accumulation information of the first cell reference information by including the particle corresponding to the particle index 11 in the cell corresponding to the cell index 11 .
  • the particle information generator of the second processor 120 may update the second particle reference information by deleting a particle corresponding to a particle index 9, which is an exchange target particle, from the second particle reference information.
  • the particle information generator of the second processor 120 may update inclusion information and accumulation information of the second cell reference information by deleting a particle corresponding to particle index 9, which is a particle to be exchanged, from the second particle reference information.
  • the flow data calculator 270 calculates flow data generated due to a collision between each particle and a neighboring particle or a collision between each particle and a polygon constituting the structure model by using the SPH algorithm, and performs a fluid analysis simulation based on the flow data. can be performed.
  • the SPH algorithm calculates the flow of each particle by using the physical property information (eg, mass, velocity, viscosity, and acceleration) of each particle, and the physical property information of each particle is the same as a radial basis function centered on the position of each particle. It is interpolated using a set of kernel functions.
  • physical property information eg, mass, velocity, viscosity, and acceleration
  • Interpolating the physical property information of each particle in this way produces continuous fields such as pressure and viscosity fields that can be used to calculate the dynamics of a fluid using standard equations such as the Navier-Stokes equation.
  • Navier-Stokes equation models a fluid as
  • Equation 2 “v” is the velocity of the particles, “ ⁇ ” is the density of the particles, “p” is the pressure on the particles, “g” is the gravity, and “ ⁇ ” is the viscosity coefficient of the fluid.
  • Equation (2) the density of each particle is derived by Equation (2).
  • the flow data calculation unit 270 calculates change values of flow data such as density, pressure, and viscosity of each particle by using the SPH algorithm. For example, the flow data calculator 270 calculates the flow data of each particle at the next time step (second time step) based on the initial flow data of each particle, and calculates the flow of each particle based on this. do.
  • the flow data calculation unit 270 calculates the flow data of each particle in the next time step based on the flow data of each particle in the second time step, and calculates the flow of each particle based on this.
  • the flow data calculator 270 calculates the flow data of each particle at each time step and calculates the flow of each particle, thereby performing the fluid analysis simulation.
  • FIG. 9 is a flowchart of a fluid analysis simulation method according to an embodiment of the present invention.
  • the fluid analysis simulation method 900 performed by the fluid analysis simulation apparatus 100 shown in FIG. 9 includes steps processed in time series by the fluid analysis simulation apparatus 100 according to the embodiment shown in FIG. . Therefore, even if omitted below, it is also applied to the method of performing the fluid analysis simulation performed by the fluid analysis and simulation apparatus 100 according to the embodiment shown in FIG. 2 .
  • the fluid analysis simulation apparatus 100 may receive data regarding a plurality of particles.
  • the fluid analysis and simulation apparatus 100 may partition a space in which a plurality of particles exist into a plurality of cells and generate a cell index.
  • the fluid analysis simulation apparatus 100 may generate cell reference information.
  • the fluid analysis simulation apparatus 100 may generate particle reference information.
  • the fluid analysis simulation apparatus 100 may search for neighboring particles.
  • step S960 the fluid analysis simulation apparatus 100 may exchange a plurality of particles with each other.
  • the fluid analysis and simulation apparatus 100 may calculate flow data between a plurality of particles and perform a fluid simulation.
  • steps S920 to S970 may be further divided into additional steps or combined into fewer steps, according to an embodiment of the present invention.
  • some steps may be omitted if necessary, and the order between the steps may be switched.
  • the method of performing fluid analysis simulation in the fluid analysis simulation apparatus described through FIGS. 2 to 9 may be implemented in the form of a computer program stored in a medium executed by a computer or a recording medium including instructions executable by the computer. have.
  • the method for performing fluid analysis simulation in the fluid analysis simulation apparatus described with reference to FIGS. 2 to 9 may be implemented in the form of a computer program stored in a medium executed by a computer.
  • Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, computer-readable media may include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Fluid Mechanics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Computational Mathematics (AREA)

Abstract

복수의 프로세서를 이용한 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석 시뮬레이션 장치는, 제 1 프로세서 및 제 2 프로세서를 포함하되, 상기 제 1 프로세서는, 상기 제 1 프로세서에 할당된 제 1 공간을 복수의 셀로 구획하고, 제 1 공간이 구획된 복수의 셀의 정보에 기초하여 제 1 셀 참고 정보를 생성하고, 상기 제 1 공간에 포함되어 있는 입자의 정보에 기초하여 제 1 입자 참고 정보를 생성하고, 상기 제 2 프로세서는, 상기 제 2 프로세서에 할당된 제 2 공간을 복수의 셀로 구획하고, 제 2 공간이 구획된 복수의 셀의 정보에 기초하여 제 2 셀 참고 정보를 생성하고, 상기 제 2 공간에 포함되어 있는 입자의 정보에 기초하여 제 2 입자 참고 정보를 생성하고, 상기 제 1 프로세서 및 상기 제 2 프로세서는, 상기 제 1 셀 참고 정보, 상기 제 1 입자 참고 정보, 상기 제 2 셀 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 상기 복수의 입자를 서로 교환하고, 상기 교환한 복수의 입자 간의 유동 데이터를 계산하고, 상기 유동 데이터에 기초하여 유체 시뮬레이션을 수행한다.

Description

SPH 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
본 발명은 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램에 관한 것이다.
전산유체역학(Computational Fluid Dynamics, CFD)은 유체 역학의 한 분야로서, 컴퓨터를 이용하여 유체의 동적인 움직임을 수치해석적 방법으로 계산해 내는 것이다. 전산유체역학은 편미분방정식인 나비에-스토크스 방정식(Naiver-Stokes Equation)을 FDM(Finite Difference Method), FEM(Finite Element Method), FVM(Finite Volume Method) 및 SPH(Smoothed Particle Hydrodynamics) 등의 방법을 통해 이산화함으로써 유체의 유동을 연산한다.
나비에-스토크스 방정식을 계산하는 방법에는 공간 도메인을 작은 공간 격자(Mesh or Grid)로 이산화하여 연산하는 격자 기반 방법과 유체를 다수의 입자의 집합으로 표현하는 입자 기반 방법이 있다.
입자 기반 방법은 해석 대상을 격자로 표현하는 대신 입자로 표현함으로써, 자연 현상이나 물리 현상에 대한 보다 자연스러운 시뮬레이션이 가능하다. 입자 기반 방법에는 SPH(Smoothed Particle Hydrodynamics), MPS(Moving Particle Semi-implicit), LBM(Lattice Boltzmann Method) 등이 있다.
입자 기반 방법 중 하나인 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석은, 격자 기반 방법과 달리 격자를 생성하는 단계가 생략되므로 해석의 결과물을 비교적 빠르게 시뮬레이션할 수 있다.
또한, SPH 기반의 유체 해석은 격자를 생성하지 않고 입자를 이용하여 해석하므로, 액체와 기체의 계면과 같은 자유 표면의 해석을 비교적 용이하게 수행할 수 있다.
또한, SPH 기반의 유체 해석은 기체, 액체, 고체 중 두 개 이상을 포함하는 다상 유동의 해석을 비교적 정확하게 수행할 수 있다.
이러한 장점들로 인해 유체의 유동을 시뮬레이션하는데 있어 최근 SPH가 많이 이용되고 있다.
다만, 복수의 프로세서를 이용하여 시뮬레이션하는 경우에 각 프로세서를 효율적으로 이용하기 위해서는 복수의 프로세서 간에 입자에 관한 정보를 교환하는 과정이 필요하다.
한편, 한국등록특허 제1700829호는 셀 단위로 각 입자들의 이웃 입자를 탐색하는 구성 및 여러 개의 연산장치에 셀을 분배하는 구성을 개시하고 있다.
인접 입자를 탐색할 수 있는 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
복수의 프로세서를 이용하는 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 수단으로서, 본 발명의 일 실시예는, 복수의 프로세서를 이용한 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석 시뮬레이션 장치에 있어서, 제 1 프로세서 및 제 2 프로세서를 포함하되, 상기 제 1 프로세서는, 상기 제 1 프로세서에 할당된 제 1 공간을 복수의 셀로 구획하고, 제 1 공간이 구획된 복수의 셀의 정보에 기초하여 제 1 셀 참고 정보를 생성하고, 상기 제 1 공간에 포함되어 있는 입자의 정보에 기초하여 제 1 입자 참고 정보를 생성하고, 상기 제 2 프로세서는, 상기 제 2 프로세서에 할당된 제 2 공간을 복수의 셀로 구획하고, 제 2 공간이 구획된 복수의 셀의 정보에 기초하여 제 2 셀 참고 정보를 생성하고, 상기 제 2 공간에 포함되어 있는 입자의 정보에 기초하여 제 2 입자 참고 정보를 생성하고, 상기 제 1 프로세서 및 상기 제 2 프로세서는, 상기 제 1 셀 참고 정보, 상기 제 1 입자 참고 정보, 상기 제 2 셀 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 상기 복수의 입자를 서로 교환하고, 상기 교환한 복수의 입자 간의 유동 데이터를 계산하고, 상기 유동 데이터에 기초하여 유체 시뮬레이션을 수행하는 것인, 유체 해석 시뮬레이션 장치를 제공할 수 있다.
일 실시예에서, 상기 제 1 프로세서는 상기 복수의 입자의 위치 정보 및 상기 제 1 공간에 대한 셀 인덱스에 기초하여 상기 제 1 입자 참고 정보를 생성하는 입자 정보 생성부 및 상기 셀 인덱스, 각 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 생성된 포함 정보를 포함하는 상기 제 1 셀 참고 정보를 생성하는 셀 정보 생성부를 포함할 수 있다.
일 실시예에서, 상기 셀 참고 정보는 각 셀 인덱스 이전의 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 생성된 누적 정보를 더 포함할 수 있다.
일 실시예에서, 상기 유체 해석 시뮬레이션 장치는 제 3 프로세서를 더 포함하고, 상기 제 3 프로세서는, 상기 제 1 셀 참고 정보 및 상기 제 2 셀 참고 정보에 기초하여 통합 셀 참고 정보를 생성하는 통합 셀 정보 생성부를 포함하는 셀 관리부 및 상기 제 1 입자 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 통합 입자 참고 정보를 생성하는 통합 입자 정보 생성부를 포함하는 입자 관리부를 포함할 수 있다.
일 실시예에서, 상기 셀 관리부는 상기 통합 셀 참고 정보에 기초하여 상기 제 1 공간에 위치한 입자의 개수 및 상기 제 2 공간에 위치한 입자의 개수를 도출하고, 상기 제 1 공간에 위치한 입자의 개수 및 상기 제 2 공간에 위치한 입자의 개수에 기초하여 상기 제 1 프로세서로 상기 제 1 공간을 할당하고, 상기 제 2 프로세서로 상기 제 2 공간을 할당하는 영역 할당부를 더 포함할 수 있다.
일 실시예에서, 상기 입자 관리부는 상기 제 2 셀 참고 정보에 기초하여 교환 대상 입자를 확인하고, 상기 제 2 셀 참고 정보의 누적 정보에 기초하여 상기 제 2 입자 참고 정보로부터 상기 교환 대상 입자의 정보를 추출하고, 상기 교환 대상 입자의 정보에 기초하여 상기 교환 대상 입자의 상기 제 1 프로세서로의 이동을 지시하는 입자 교환부를 더 포함할 수 있다.
일 실시예에서, 상기 제 1 프로세서는 상기 제 2 프로세서로부터 상기 교환 대상 입자에 관한 데이터를 전달받는 입자 교환 수행부를 더 포함할 수 있다.
일 실시예에서, 상기 입자 정보 생성부는 상기 교환 대상 입자의 정보에 기초하여 상기 제 1 입자 참고 정보를 업데이트하고, 상기 셀 정보 생성부는 상기 교환 대상 입자의 정보에 기초하여 상기 제 1 셀 참고 정보를 업데이트할 수 있다.
일 실시예에서, 상기 제 1 프로세서 및 상기 제 2 프로세서는 GPU(Graphics Processing Unit)이고, 상기 제 3 프로세서는 CPU(Central Processing Unit)일 수 있다.
본 발명의 다른 실시예는, 제 1 프로세서 및 제 2 프로세서를 포함하는 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석 시뮬레이션 장치에서 수행되는 방법에 있어서, 상기 제 1 프로세서에 의해 상기 제 1 프로세서에 할당된 제 1 공간을 복수의 셀로 구획하는 단계, 상기 제 1 프로세서에 의해 상기 제 1 공간이 구획된 복수의 셀의 정보에 기초하여 제 1 셀 참고 정보를 생성하는 단계, 상기 제 1 프로세서에 의해 상기 제 1 공간에 포함되어 있는 입자의 정보에 기초하여 제 1 입자 참고 정보를 생성하는 단계, 상기 제 2 프로세서에 의해 상기 제 2 프로세서에 할당된 제 2 공간을 복수의 셀로 구획하는 단계, 상기 제 2 프로세서에 의해 상기 제 2 공간이 구획된 복수의 셀의 정보에 기초하여 제 2 셀 참고 정보를 생성하는 단계, 상기 제 2 프로세서에 의해 상기 제 2 공간에 포함되어 있는 입자의 정보에 기초하여 제 2 입자 참고 정보를 생성하는 단계, 상기 제 1 프로세서 및 상기 제 2 프로세서 각각에 의해 상기 제 1 셀 참고 정보, 상기 제 1 입자 참고 정보, 상기 제 2 셀 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 상기 복수의 입자를 서로 교환하는 단계, 상기 제 1 프로세서 및 상기 제 2 프로세서 각각에 의해 상기 교환한 복수의 입자 간의 유동 데이터를 계산하고, 상기 유동 데이터에 기초하여 유체 시뮬레이션을 수행하는 것인, 유체 해석 시뮬레이션 방법을 제공할 수 있다.
본 발명의 다른 실시예는, 복수의 프로세서를 이용한 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석 시뮬레이션을 하는 명령어들의 시퀀스를 포함하는 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우, 상기 복수의 프로세서는 제 1 프로세서 및 제 2 프로세서를 포함하고, 해석 공간을 제 1 공간 및 제 2 공간으로 분할하고, 상기 제 1 공간을 상기 제 1 프로세서에 할당하고, 상기 제 2 공간을 상기 제 2 프로세서에 할당하고, 상기 제 1 프로세서에 의해 상기 제 1 공간을 복수의 셀로 구획하고, 상기 제 1 프로세서에 의해 상기 제 1 공간이 구획된 복수의 셀의 정보에 기초하여 제 1 셀 참고 정보를 생성하고, 상기 제 1 프로세서에 의해 상기 제 1 공간에 포함되어 있는 입자의 정보에 기초하여 제 1 입자 참고 정보를 생성하고, 상기 제 2 프로세서에 의해 상기 제 2 공간을 복수의 셀로 구획하고, 상기 제 2 프로세서에 의해 상기 제 2 공간이 구획된 복수의 셀의 정보에 기초하여 제 2 셀 참고 정보를 생성하고, 상기 제 2 프로세서에 의해 상기 제 2 공간에 포함되어 있는 입자의 정보에 기초하여 제 2 입자 참고 정보를 생성하고, 상기 제 1 프로세서 및 상기 제 2 프로세서 각각이 상기 제 1 셀 참고 정보, 상기 제 1 입자 참고 정보, 상기 제 2 셀 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 상기 복수의 입자를 서로 교환하고, 상기 제 1 프로세서 및 상기 제 2 프로세서 각각이 상기 교환한 복수의 입자 간의 유동 데이터를 계산하고, 상기 유동 데이터에 기초하여 유체 시뮬레이션을 수행하도록 하는 명령어들의 시퀀스를 포함하는, 매체에 저장된 컴퓨터 프로그램을 제공할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 이웃 입자를 빠르게 탐색하고, 복수의 프로세서 간에 정보를 효율적으로 교환할 수 있는 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램을 제공할 수 있다.
또한, 복수의 프로세서를 이용하여 복잡한 구조물, 넓은 범위의 공간 등에 대한 유체 해석 시뮬레이션을 수행하는 시간을 단축할 수 있다.
또한, 복수의 프로세서를 이용하여 유체의 움직임을 효과적으로 예측함으로써, 다양한 기술분야에 응용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 복수의 프로세서를 이용한 유체 해석 시뮬레이션 장치의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 유체 해석 시뮬레이션 장치의 구성도이다.
도 3은 본 발명의 일 실시예에 따라 입자 참고 정보 및 셀 참고 정보를 생성하는 과정을 예시적으로 나타낸다.
도 4는 본 발명의 일 실시예에 따라 이웃 입자를 탐색하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따라 복수의 프로세서 각각에 의해 생성된 입자 참고 정보 및 셀 참고 정보를 예시적으로 나타낸다.
도 6은 본 발명의 일 실시예에 따라 통합 셀 참고 정보 및 통합 입자 참고 정보를 생성하는 과정을 예시적으로 나타낸다.
도 7은 본 발명의 일 실시예에 따라 복수의 프로세서가 입자를 서로 교환하는 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따라 복수의 프로세서가 입자를 서로 교환하는 과정을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 유체 해석 시뮬레이션 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 복수의 프로세서를 이용한 유체 해석 시뮬레이션 장치의 구성도이다. 도 1은 유체 해석 시뮬레이션 장치가 포함하는 복수의 프로세서를 예시적으로 도시한다. 도 1을 참조하면, 유체 해석 시뮬레이션 장치(100)는 제 1 프로세서(110), 제 2 프로세서(120) 및 제 3 프로세서(130)를 포함할 수 있다. 다만, 유체 해석 시뮬레이션 장치(100)가 포함할 수 있는 프로세서의 수는 도 1에 도시된 경우보다 더 적거나, 또는 더 많을 수 있다.
유체 해석 시뮬레이션 장치(100)는 서버, 데스크탑, 노트북, 키오스크(KIOSK) 및 스마트폰(smartphone), 태블릿 PC를 포함할 수 있다. 다만, 유체 해석 시뮬레이션 장치(100)는 앞서 예시된 것들로 한정 해석되는 것은 아니다. 즉, 유체 해석 시뮬레이션 장치(100)는 후술하는 SPH 기반의 유체 해석 시뮬레이션 방법을 수행하는 프로세서를 탑재한 모든 장치를 포함할 수 있다.
유체 해석 시뮬레이션 장치(100)는 유체의 3차원 유동해석을 수행한다. 즉, 유체 해석 시뮬레이션 장치(100)는 3차원 시뮬레이션 영역 및 3차원 시뮬레이션 영역에 위치하는 복수의 입자를 모델링하고, 복수의 입자의 3차원 시뮬레이션 영역 내에서의 유동을 해석한다. 다만, 본원에서는 설명의 편의를 위해 시뮬레이션 영역 및 입자를 2차원으로 표현하여 설명한다.
유체 해석 시뮬레이션 장치(100)는 SPH(Smoothed Particle Hydrodynamics) 기반으로 유체를 해석하기 위한 시뮬레이션을 수행할 수 있다. SPH(Smoothed Particle Hydrodynamics)는 전산유체역학(Computational Fluid Dynamics, CFD)에서 사용될 수 있는 입자 방식의 유체 해석 기법의 하나이다. SPH는 유체의 움직임을 시뮬레이션하기 위하여, 해석 대상인 유체를 하나 이상의 입자로 표현할 수 있다. SPH는 각 입자를 추적하면서 입자가 가지는 물리량을 계산할 수 있고, 계산 결과에 기초하여 유체 해석 시뮬레이션을 수행할 수 있다.
제 1 프로세서(110), 제 2 프로세서(120) 및 제 3 프로세서(130)는 각각이 독립된 연산 작업을 수행할 수 있는 정보 처리 장치일 수 있다. 제 1 프로세서(110), 제 2 프로세서(120) 및 제 3 프로세서(130)의 일방은 다른 일방으로 정보를 전송하거나, 다른 일방으로부터 정보를 수신할 수 있다. 일 실시예에서, 제 1 프로세서(110) 및 제 2 프로세서(120)는 GPU(Graphics Processing Unit)이고, 제 3 프로세서(130)는 CPU(Central Processing Unit)일 수 있다.
도 2를 참조하면, 유체 해석 시뮬레이션 장치(100)는 입력부(210), 공간 형성부(220), 입자 탐색부(230), 셀 관리부(240), 입자 관리부(250), 입자 교환 수행부(260) 및 유동 데이터 계산부(270)를 포함할 수 있다.
일 실시예에서, 제 1 프로세서(110) 및 제 2 프로세서(120)의 각각은 공간 형성부(220), 입자 탐색부(230), 입자 교환 수행부(260) 및 유동 데이터 계산부(270)를 포함하고, 제 3 프로세서(130)는 입력부(210), 셀 관리부(240) 및 입자 관리부(250)를 포함할 수 있다. 다만, 유체 해석 시뮬레이션 장치(100)가 포함하는 각 프로세서(110, 120, 130)의 구성은 이에 제한되지 않는다.
입력부(210)는 유체 해석 시뮬레이션을 위하여 복수의 입자에 관한 데이터를 입력받을 수 있다. 예를 들어, 입력부(210)는 사용자 단말과 같은 외부 장치로부터 복수의 입자에 관한 데이터를 입력받을 수 있다.
입력부(210)는 외부 서버와의 통신을 통해 복수의 입자에 관한 데이터를 입력받을 수도 있다. 복수의 입자에 관한 데이터는 유체 해석 시뮬레이션을 수행하기 위하여 필요한 해석 대상에 관한 정보를 포함할 수 있다. 복수의 입자에 관한 데이터는, 각 입자의 물성 정보를 포함할 수 있으며, 예를 들어 각 입자의 입자 반경, 질량, 밀도, 점성, 속도, 가속도 및 위치 중 적어도 하나를 포함할 수 있다.
유체 해석 시뮬레이션 장치(100)는 모델링부(미도시)를 더 포함할 수 있다. 모델링부는 복수의 입자가 위치하는 구조물 모델을 생성할 수 있다. 모델링부는 예를 들어, 복수의 다각형으로 구성되는 메시 기반의 구조물 모델을 생성할 수 있다. 모델링부는 각 입자의 위치(중심 좌표)와 입자 반경에 기초하여 복수의 입자를 생성할 수 있다. 구조물 모델은 예를 들어, 복수의 삼각형으로 구성되는 메시를 기반으로 생성될 수도 있다.
공간 형성부(220)는 복수의 입자가 존재하는 공간을 복수의 셀로 구획할 수 있다. 공간 형성부(220)는 복수의 입자가 존재하는 공간에서의 셀의 위치에 기초하여 셀 인덱스를 생성할 수 있다.
도 3a를 참조하면, 공간 형성부(220)는 복수의 입자(10)가 존재하는 공간을 복수의 셀(20)로 구획할 수 있다. 공간 형성부(220)는 입자(10)의 반경에 기초하여 셀(20)의 크기를 결정할 수 있다. 공간 형성부(220)는 복수의 셀(20) 각각에 부여하는 고유한 번호인, 셀 인덱스(30)를 생성할 수 있다. 예를 들어, 복수의 입자(10)가 존재하는 공간이 아홉 개의 셀(20)로 구획된 경우에, 공간에서의 셀(20)의 위치에 기초하여 각 셀(20)에 대하여 번호 0 내지 8 중 하나를 순서대로 부여하여, 셀 인덱스(30)를 생성할 수 있다.
공간 형성부(220)는 복수의 입자 각각에 부여하는 고유한 번호인, 입자 인덱스를 생성할 수 있다. 다시 도 3a를 참조하면, 여덟 개의 입자(10)에 관한 데이터를 입력받은 경우에 공간 형성부(220)는 예를 들어, 각 입자(10)에 대하여 번호 0 내지 7 중 하나를 순서대로 부여하여 입자 인덱스를 생성할 수 있다.
다른 실시예에서, 입자 인덱스는 입력부(210)가 입력받는 복수의 입자에 관한 데이터에 포함되어 있을 수 있다.
입자 탐색부(230)는 복수의 입자가 존재하는 공간에서 대상 입자와 이웃하는 적어도 하나의 이웃 입자를 탐색할 수 있다. 입자 탐색부(230)는 입자 정보 생성부(미도시) 및 셀 정보 생성부(미도시)를 포함할 수 있다.
입자 정보 생성부는 복수의 입자에 관한 입자 참고 정보를 생성할 수 있다. 입자 정보 생성부는 입자 참고 정보를 생성하기 전에, 복수의 입자의 개수에 기초하여 메모리를 확보할 수 있다.
입자 정보 생성부는 복수의 입자의 위치 정보 및 셀 인덱스에 기초하여 입자 참고 정보를 생성할 수 있다. 입자 참고 정보는 예를 들어, 입자 인덱스 및 이에 대응하는 입자가 포함되는 셀 인덱스를 포함할 수 있다.
도 3a 및 도 3b는 입자 참고 정보를 생성하는 과정을 설명하기 위한 도면이다. 도 3b에 도시된 바와 같이, 입자 정보 생성부는 입자 참고 정보를 생성하기 전에, 복수의 입자의 개수에 해당하는, 8개의 정보를 저장할 수 있는 메모리(310)를 확보할 수 있다.
도 3b를 참조하면, 입자 정보 생성부는 입자 인덱스(311) 및 이에 대응하는 입자가 포함되는 셀 인덱스(312)를 포함하는 입자 참고 정보를 생성할 수 있다. 예를 들어, 입자 정보 생성부는 입자 인덱스인 '3' 및 이에 대응하는 입자가 포함되는 셀 인덱스인 '7'을 포함하는 입자 참고 정보를 생성할 수 있다.
입자 정보 생성부는 셀 인덱스를 기준으로 입자 참고 정보를 오름차순 정렬할 수 있다. 도 3c를 참조하면, 입자 정보 생성부는 메모리(310)에 저장된 복수의 입자 각각에 대한 입자 참고 정보를, 0 및 1 이상의 셀 인덱스(312)를 기준으로 오름차순 정렬할 수 있다.
셀 정보 생성부는 복수의 셀에 관한 셀 참고 정보를 생성할 수 있다. 셀 참고 정보는 포함 정보 및 누적 정보를 포함할 수 있다.
셀 정보 생성부는 셀 참고 정보를 생성하기 전에, 복수의 셀의 개수에 기초하여 메모리를 확보할 수 있다. 예를 들어, 셀 정보 생성부는 셀의 총 개수에 해당하는 정보를 저장할 수 있는 메모리를 확보할 수 있다. 하나의 셀에 대응하는 셀 참고 정보는, 한 개의 정보를 저장하는 메모리를 이용할 수 있다.
셀 정보 생성부는 셀 인덱스 및 각 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 포함 정보를 생성할 수 있다. 도 3a 및 도 3d를 참조하면, 셀 정보 생성부는 셀의 총 개수인 9개의 정보를 저장할 수 있는 메모리를 확보할 수 있다. 셀 정보 생성부는 각 셀 인덱스(320)에 대응하는 셀에 포함되는 입자의 개수에 기초하여 포함 정보(321)를 생성할 수 있다. 예를 들어, 셀 인덱스 3에 대응하는 셀에 포함되는 입자는 두 개이므로, 포함 정보는 '2'로 생성될 수 있다.
셀 정보 생성부는 각 셀 인덱스 이전의 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 누적 정보를 생성할 수 있다. 다시 도 3a 및 도 3d를 참조하면, 셀 정보 생성부는 각 셀 인덱스(320) 이전의 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 누적 정보(322)를 생성할 수 있다. 예를 들어, 셀 인덱스 2 이전의 셀 인덱스, 즉 셀 인덱스 0에 대응되는 셀에 포함되는 입자는 한 개이고, 셀 인덱스 1에 대응되는 셀에 포함되는 입자는 한 개이므로, 셀 인덱스 2의 누적 정보는 '2'로 생성될 수 있다.
입자 탐색부(230)는 상술한 입자 참고 정보 및 셀 참고 정보에 기초하여 대상 입자와 이웃하는 적어도 하나의 이웃 입자를 탐색할 수 있다. 이웃 입자의 탐색은 후술할 복수의 프로세서 간의 입자를 교환하는 데에 이용될 수 있다. 또한, 이웃 입자의 탐색은 후술할 유동 데이터의 계산에 이용될 수 있다.
입자 탐색부(230)는 대상 입자가 위치하는 셀에 대응하는 셀 인덱스에 기초하여 이웃 셀을 탐색할 수 있다. 다시 도 3a를 참조하면, 예를 들어, 입자 인덱스가 1인 대상 입자에 대하여 이웃 셀은, 대상 입자가 위치하는 셀의 셀 인덱스인 4에 기초하여, 셀 인덱스 0, 1, 2, 3, 5, 6, 7 및 8에 대응하는 셀로 도출될 수 있다.
입자 탐색부(230)는 대상 입자가 위치하는 셀에 대응하는 셀 참고 정보에 기초하여 이웃 입자를 탐색할 수 있다.
입자 탐색부(230)는 이웃 셀에 대응하는 셀 참고 정보에 기초하여 이웃 입자를 탐색할 수 있다. 입자 탐색부(230)는 이웃 셀의 포함 정보 및 누적 정보에 기초하여 이웃 입자를 탐색할 수 있다. 예를 들어, 대상 입자에 대하여 복수의 이웃 셀이 도출된 경우에, 각 이웃 셀의 포함 정보 및 누적 정보에 기초하여 이웃 입자를 탐색할 수 있다.
입자 탐색부(230)는 이웃 셀에 대응하는 누적 정보에 기초하여 상기 이웃 입자에 대응하는 입자 참고 정보의 제 1 메모리 위치를 추적할 수 있다. 입자 탐색부(230)는 이웃 셀에 대응하는 포함 정보에 기초하여 이웃 입자에 대응하는 입자 참고 정보의 복수의 제 2 메모리 위치를 추적할 수 있다.
도 4는 본 발명의 일 실시예에 따라 이웃 입자를 탐색하는 방법을 설명하기 위한 도면이다. 도 4a 및 도 4b는 입자 인덱스가 1인 대상 입자의 이웃 입자를 탐색하는 과정을 예시적으로 나타낸다. 상술한 바와 같은 방법으로, 입자 인덱스가 1인 대상 입자의 이웃 셀은, 대상 입자가 위치하는 셀의 셀 인덱스인 4에 기초하여, 셀 인덱스 0, 1, 2, 3, 5, 6, 7 및 8에 대응하는 셀로 도출될 수 있다. 입자 탐색부(230)는 대상 입자가 위치하는 셀 및 도출된 이웃 셀 각각에 대하여, 대응하는 셀 참고 정보에 기초하여 대상 입자의 이웃 입자를 탐색할 수 있다.
도 4a를 참조하면, 유체 해석 시뮬레이션 장치(100)는 대상 입자가 위치하는 셀(셀 인덱스 4)에 대응하는 셀 참고 정보에 기초하여 동일 셀 내의 이웃 입자를 탐색할 수 있다. 유체 해석 시뮬레이션 장치(100)는 셀 인덱스가 4인 셀에 대응하는 누적 정보 4를 추출할 수 있다. 이로부터, 유체 해석 시뮬레이션 장치(100)는 동일 셀 내의 이웃 입자에 대응하는 입자 참고 정보의 제 1 메모리 위치가 '4'임을 추적할 수 있다.
또한, 유체 해석 시뮬레이션 장치(100)는 셀 인덱스가 4인 셀에 대응하는 포함 정보 1을 추출할 수 있다. 이로부터, 유체 해석 시뮬레이션 장치(100)는 동일 셀 내의 이웃 입자에 대응하는 입자 참고 정보의 제 2 메모리 위치를 추적할 수 있다. 제 2 메모리 위치는 제 1 메모리 위치에 대응하는 입자를 포함하여 한 개의 입자를 포함할 수 있는 복수의 추가 메모리의 위치를 의미한다. 도 4a에서는 포함 정보가 '1'이므로 셀 인덱스가 4인 셀에 대상 입자만이 위치하고, 이로 인해 제 2 메모리 위치는 추적되지 않는다.
이를 통하여, 유체 해석 시뮬레이션 장치(100)는 추적된 제 1 메모리 위치 및 제 2 메모리 위치에 기초하여 셀 인덱스가 4인 셀에 포함되는 입자 인덱스 1을 추출할 수 있다. 즉, 유체 해석 시뮬레이션 장치(100)는 셀 인덱스가 4인 이웃 셀에 포함되는 입자가 자기 자신밖에 없음을 확인할 수 있다.
도 4b를 참조하면, 유체 해석 시뮬레이션 장치(100)는 대상 입자의 이웃 셀 중에서, 셀 인덱스(320)가 3인 셀에 대응하는 셀 참고 정보에 기초하여 이웃 셀 내의 이웃 입자를 탐색할 수 있다. 유체 해석 시뮬레이션 장치(100)는 셀 인덱스가 3인 이웃 셀에 대응하는 누적 정보 2를 추출할 수 있다. 여기서, 누적 정보 2는 셀 인덱스 3 이전의 셀 인덱스(즉, 셀 인덱스 0 내지 2)에 대응되는 복수의 셀에 2개의 입자가 존재함을 나타낸다. 이로부터, 유체 해석 시뮬레이션 장치(100)는 이웃 셀 내의 이웃 입자에 대응하는 입자 참고 정보의 제 1 메모리 위치를 추적할 수 있다.
즉, 유체 해석 시뮬레이션 장치(100)는 누적 정보 2에 기초하여 셀 인덱스 3에 존재하는 세 번째 입자의 정보를 포함하는 메모리 2의 위치(즉, 제 1 메모리 위치)를 확인하고, 메모리 2로부터 이웃 입자의 입자 인덱스 4를 추출할 수 있다.
또한, 유체 해석 시뮬레이션 장치(100)는 셀 인덱스가 3인 이웃 셀에 대응하는 포함 정보 2를 추출할 수 있다. 여기서, 포함 정보 2는 셀 인덱스가 3에 2개의 입자가 존재함을 나타낸다. 이로부터, 유체 해석 시뮬레이션 장치(100)는 이웃 셀 내의 이웃 입자에 대응하는 입자 참고 정보의 제 2 메모리 위치를 추적할 수 있다. 제 2 메모리 위치는 제 1 메모리 위치에 대응하는 입자를 포함하여 두 개의 입자를 포함할 수 있는 복수의 추가 메모리의 위치를 의미한다. 즉, 유체 해석 시뮬레이션 장치(100)는 포함 정보 2에 기초하여 셀 인덱스 3에 존재하는 네 번째 입자의 정보를 포함하는 메모리 3의 위치(즉, 제 2 메모리 위치)를 확인하고, 메모리 3으로부터 이웃 입자의 입자 인덱스 5를 추출할 수 있다.
이를 통하여, 유체 해석 시뮬레이션 장치(100)는 추적된 제 1 메모리 위치 및 제 2 메모리 위치에 기초하여 셀 인덱스가 3인 이웃 셀에 포함되는 입자 인덱스 4 및 5를 추출할 수 있다. 즉, 유체 해석 시뮬레이션 장치(100)는 셀 인덱스가 3인 이웃 셀에 포함되는 입자가 입자 인덱스 4 및 5에 대응하는 입자임을 확인할 수 있다.
유체 해석 시뮬레이션 장치(100)는 대상 입자가 위치하는 셀 및 이와 이웃하는 모든 셀, 즉 셀 인덱스 0 내지 8에 대하여 상술한 과정을 반복하여 모든 이웃 입자를 탐색할 수 있다.
상술한 바와 같이, 유체 해석 시뮬레이션 장치(100)는 대상 입자의 이웃 입자를 탐색함에 있어서 포함 정보 및 누적 정보를 활용할 수 있다. 즉, 입자 참고 정보는 셀 인덱스를 기준으로 오름차순으로 정렬되어 있으며, 누적 정보는 각 셀 인덱스 이전의 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 생성되기 때문에, 유체 해석 시뮬레이션 장치(100)는 포함 정보 및 누적 정보를 활용하여 대상 입자의 이웃 입자를 용이하게 확인할 수 있다.
보다 구체적으로, 유체 해석 시뮬레이션 장치(100)는 대상 입자의 이웃 입자를 탐색하기 위해 입자의 정보를 포함하는 모든 메모리를 조회할 필요 없이 대상 입자가 위치하는 셀의 이웃 셀에 대응하는 포함 정보 및 누적 정보를 이용하여 이웃 입자의 정보를 포함하는 메모리를 알 수 있고, 해당 메모리만을 조회함으로써 이웃 입자의 정보를 확인할 수 있다. 이로 인해 유체 해석 시뮬레이션 장치(100)의 처리 속도를 대폭 향상시킬 수 있다.
복수의 입자가 존재하는 공간은 제 1 공간 및 제 2 공간을 포함할 수 있다. 다시 도 1을 참조하면, 유체 해석 시뮬레이션 장치(100)는 예를 들어, 제 1 프로세서(110)에 제 1 공간을 할당하고 제 2 프로세서(120)에 제 2 공간을 할당할 수 있다.
상술한 바와 같이, 제 1 프로세서(110) 및 제 2 프로세서(120)의 각각은 공간 형성부(220), 입자 탐색부(230), 입자 교환 수행부(260) 및 유동 데이터 계산부(270)를 포함할 수 있다.
이에 의하여 제 1 프로세서(110)의 공간 형성부(220)는 제 1 공간을 복수의 셀로 구획하고, 제 1 프로세서(110)의 셀 정보 생성부는 제 1 공간이 구획된 복수의 셀의 정보에 기초하여 제 1 셀 참고 정보를 생성할 수 있다. 제 1 프로세서(110)의 입자 정보 생성부는 제 1 공간에 포함되어 있는 입자의 정보에 기초하여 제 1 입자 참고 정보를 생성할 수 있다.
마찬가지로, 제 2 프로세서(120)의 공간 형성부(220)는 제 2 공간을 복수의 셀로 구획하고, 제 2 프로세서(120)의 셀 정보 생성부는 제 2 공간이 구획된 복수의 셀의 정보에 기초하여 제 2 셀 참고 정보를 생성할 수 있다. 제 2 프로세서(120) 의 입자 정보 생성부는 제 2 공간에 포함되어 있는 입자의 정보에 기초하여 제 2 입자 참고 정보를 생성할 수 있다.
도 5는 본 발명의 일 실시예에 따라 복수의 프로세서 각각에 의해 생성된 입자 참고 정보 및 셀 참고 정보를 예시적으로 나타낸다.
도 5a 및 도 5b를 참조하면, 제 1 프로세서(110)에 의해 제 1 공간에 포함되는 셀 인덱스 0 내지 11에 대응하는 셀의 정보에 기초하여 생성된 제 1 셀 참고 정보(520 내지 522)가 도시된다. 또한, 제 1 프로세서(110)에 의해 제 1 공간에 포함되는 입자 P0 1 내지 P0 10의 정보에 기초하여 생성된 제 1 입자 참고 정보(510 내지 513)가 도시된다.
도 5a 및 도 5c를 참조하면, 제 2 프로세서(120)에 의해 제 2 공간에 포함되는 셀 인덱스 11 내지 24에 대응하는 셀의 정보에 기초하여 생성된 제 2 셀 참고 정보(540 내지 542)가 도시된다. 또한, 제 2 프로세서(120)에 의해 제 2 공간에 포함되는 입자 P1 1 내지 P1 10의 정보에 기초하여 생성된 제 2 입자 참고 정보(530 내지 533)가 도시된다.
다시 도 1을 참조하면, 유체 해석 시뮬레이션 장치(100)는 제 3 프로세서(130)를 더 포함할 수 있다. 상술한 바와 같이, 제 3 프로세서(130)는 입력부(210), 셀 관리부(240) 및 입자 관리부(250)를 포함할 수 있다.
제 3 프로세서(130)의 셀 관리부(240)는 통합 셀 정보 생성부(미도시)를 포함할 수 있다. 제 3 프로세서(130)의 통합 셀 정보 생성부는 제 1 셀 참고 정보 및 제 2 셀 참고 정보에 기초하여 통합 셀 참고 정보를 생성할 수 있다.
도 5a 및 도 6a를 참조하면, 제 3 프로세서(130)의 통합 셀 정보 생성부는 제 1 프로세서(110)에 의해 생성된 제 1 셀 참고 정보(도 5b의 520 내지 522) 및 제 2 프로세서(120)에 의해 생성된 제 2 셀 참고 정보(도 5c의 540 내지 542)에 기초하여 통합 셀 참고 정보(610 내지 612)를 생성할 수 있다. 예를 들어, 제 3 프로세서(130)의 통합 셀 정보 생성부는 동일한 셀 인덱스에 대응하는 셀의 포함 정보를 합하고, 동일한 셀 인덱스에 대응하는 셀의 누적 정보를 각각 합함으로써, 통합 셀 참고 정보를 생성할 수 있다.
제 3 프로세서(130)의 입자 관리부(250)는 통합 입자 정보 생성부(미도시)를 포함할 수 있다. 제 3 프로세서(130)의 통합 입자 정보 생성부는 제 1 입자 참고 정보 및 제 2 입자 참고 정보에 기초하여 통합 입자 참고 정보를 생성할 수 있다.
도 5a 및 도 6b를 참조하면, 제 3 프로세서(130)의 통합 입자 정보 생성부는 제 1 프로세서(110)에 의해 생성된 제 1 입자 참고 정보(도 5b의 510 내지 513) 및 제 2 프로세서(120)에 의해 생성된 제 2 입자 참고 정보(도 5c의 530 내지 533)에 기초하여 통합 입자 참고 정보(620 내지 623)를 생성할 수 있다. 예를 들어, 제 3 프로세서(130)의 통합 입자 정보 생성부는 제 1 입자 참고 정보 및 제 2 입자 참고 정보를 병렬적으로 저장함으로써, 통합 입자 참고 정보를 생성할 수 있다.
제 3 프로세서(130)의 통합 입자 정보 생성부는 셀 인덱스를 기준으로 통합 입자 참고 정보를 오름차순 정렬할 수 있다. 도 6c를 참조하면, 통합 입자 정보 생성부는 메모리(620)에 저장된 복수의 입자 각각에 대한 통합 입자 참고 정보를, 0 및 1 이상의 셀 인덱스(622)를 기준으로 오름차순 정렬할 수 있다.
제 3 프로세서(130)의 셀 관리부(240)는 영역 할당부(미도시)를 더 포함할 수 있다. 제 3 프로세서(130)의 영역 할당부는 통합 셀 참고 정보에 기초하여 제 1 공간에 위치한 입자의 개수 및 제 2 공간에 위치한 입자의 개수를 도출할 수 있다. 제 3 프로세서(130)의 영역 할당부는 제 1 공간에 위치한 입자의 개수 및 제 2 공간에 위치한 입자의 개수에 기초하여, 제 1 프로세서(110)로 제 1 공간을 할당하고 제 2 프로세서(120)로 제 2 공간을 할당할 수 있다.
다시 도 6a를 참조하면, 제 3 프로세서(130)의 영역 할당부는 통합 셀 참고 정보의 누적 정보(612)에 기초하여, 복수의 입자의 개수에 기초하여 각 프로세서에 공간을 할당할 수 있다.
제 3 프로세서(130)의 입자 관리부(250)는 입자 교환부(미도시)를 더 포함할 수 있다. 제 3 프로세서(130)의 입자 교환부는 제 2 셀 참고 정보에 기초하여 교환 대상 입자를 확인할 수 있다. 즉, 제 3 프로세서(130)의 입자 교환부는 각 프로세서에 할당된 공간을 기준으로 교환 대상 입자를 확인할 수 있다.
제 3 프로세서(130)의 입자 교환부는 제 2 셀 참고 정보의 누적 정보에 기초하여 제 2 입자 참고 정보로부터 교환 대상 입자의 정보를 추출할 수 있다. 제 3 프로세서(130)의 입자 교환부는 교환 대상 입자의 정보에 기초하여 교환 대상 입자의 상기 제 1 프로세서로의 이동을 지시할 수 있다.
도 5b 및 도 7a를 참조하면, 제 3 프로세서(130)의 입자 교환부는 제 1 셀 참고 정보(520 내지 522)로부터 교환 대상이 아닌 입자가 존재하는 셀에 대한 메모리 정보(701) 및 교환 대상인 입자가 존재하는 셀에 대한 메모리 정보(702)를 추출할 수 있다. 제 3 프로세서(130)의 입자 교환부는 메모리 정보(701)에 기초하여 교환 대상인 입자를 확인할 수 있다. 이때, 교환 대상인 입자는 제 1 프로세서(110)가 제 1 입자 참고 정보(510 내지 513)를 통해 관리하는 입자로서 제 2 프로세서(120)에 할당된 셀에 위치하는 입자이다. 도 7a에는 교환 대상 입자가 존재하지 않는 경우가 도시되어 있다.
도 5c 및 도 7b를 참조하면, 제 3 프로세서(130)의 입자 교환부는 제 2 셀 참고 정보(540 내지 542)로부터 교환 대상인 입자가 존재하는 셀에 대한 메모리 정보(711) 및 교환 대상이 아닌 입자가 존재하는 셀에 대한 메모리 정보(712)를 추출할 수 있다. 제 3 프로세서(130)의 입자 교환부는 메모리 정보(711)에 기초하여 교환 대상인 입자를 확인할 수 있다. 이때, 교환 대상인 입자는 제 2 프로세서(120)가 제 2 입자 참고 정보(530 내지 533)를 통해 관리하는 입자로서 제 1 프로세서(110)에 할당된 셀에 위치하는 입자이다. 도 7b에는 셀 인덱스 11에 대응하는 셀에 교환 대상 입자가 존재하는 경우가 도시되어 있다.
도 8a를 참조하면, 제 3 프로세서(130)의 입자 교환부는 메모리 정보(711)에 기초하여, 제 2 셀 참고 정보(540 내지 542)로부터 제 2 입자 참고 정보(530 내지 533)의 메모리 위치를 추적할 수 있다. 제 3 프로세서(130)의 입자 교환부는 제 2 입자 참고 정보(540 내지 542)로부터 교환 대상 입자의 입자 인덱스 9를 추출할 수 있다. 예를 들어, 제 3 프로세서(130)의 입자 교환부는 제 2 입자 참고 정보(540 내지 542)의 교환 대상 입자의 입자가 존재하는 셀 인덱스 '11'에 대응하는 누적 정보 '0'로부터 교환 대상 입자의 입자가 존재하는 제 2 입자 참고 정보(530 내지 533)의 제 1 메모리 위치가 '0'임을 추적할 수 있다. 제 3 프로세서(130)의 입자 교환부는 셀 인덱스 '11'에 대응하는 포함 정보 '1'로부터 교환 대상 입자의 입자가 존재하는 제 2 입자 참고 정보(530 내지 533)의 제 2 메모리 위치를 추적할 수 있다. 도 8a에서는 포함 정보가 '1'이므로 셀 인덱스가 11인 셀에 대상 입자만이 위치하고, 이로 인해 제 2 메모리 위치는 추적되지 않는다.
제 3 프로세서(130)의 입자 교환부는 교환 대상 입자의 정보에 기초하여 교환 대상 입자의 제 1 프로세서(110)로의 이동을 지시할 수 있다. 예를 들어, 제 3 프로세서(130)의 입자 교환부는 제 2 입자 참고 정보(530 내지 533)의 제 1 메모리 위치에 대응하는 메모리로부터 교환 대상 입자의 입자 인덱스 9를 확인하고, 제 2 프로세서(120)로 입자 인덱스 9에 대응하는 입자에 관한 정보를 제 1 프로세서(110)로 이동할 것을 지시할 수 있다.
제 1 프로세서(110)의 입자 교환 수행부(260)는 제 2 프로세서(120)로부터 교환 대상 입자에 관한 데이터를 전달받을 수 있다.
제 1 프로세서(110)의 입자 정보 생성부는 교환 대상 입자의 정보에 기초하여 제 1 입자 참고 정보를 업데이트할 수 있다. 제 1 프로세서(110)의 셀 정보 생성부는 교환 대상 입자의 정보에 기초하여 제 1 셀 참고 정보를 업데이트할 수 있다.
도 8a 및 도 8b를 참조하면, 제 1 프로세서(110)의 입자 정보 생성부는 제 2 프로세서(120)로부터 교환 대상 입자인 입자 인덱스 9에 대응하는 입자에 관한 데이터를 전달받고, 제 1 입자 참고 정보(510 내지 513)를 업데이트할 수 있다. 제 1 프로세서(110) 의 입자 정보 생성부는 교환된 입자에 대하여 새로 부여한 입자 인덱스인 11, 교환된 입자가 포함되는 셀의 셀 인덱스 11을 포함하도록 제 1 입자 참고 정보(510 내지 513)를 업데이트할 수 있다. 제 1 프로세서(110)의 셀 정보 생성부는 입자 인덱스 11에 대응하는 입자가 셀 인덱스 11에 대응하는 셀에 포함됨으로써 제 1 셀 참고 정보의 포함 정보 및 누적 정보를 업데이트할 수 있다.
제 2 프로세서(120)의 입자 정보 생성부는 제 2 입자 참고 정보에서 교환 대상 입자인 입자 인덱스 9에 대응하는 입자를 삭제함으로써 제 2 입자 참고 정보를 업데이트할 수 있다. 제 2 프로세서(120)의 입자 정보 생성부는 제 2 입자 참고 정보에서 교환 대상 입자인 입자 인덱스 9에 대응하는 입자가 삭제됨으로써 제 2 셀 참고 정보의 포함 정보 및 누적 정보를 업데이트할 수 있다.
유동 데이터 계산부(270)는 SPH 알고리즘을 이용하여 각 입자와 이웃 입자 간의 충돌 또는 각 입자와 구조물 모델을 구성하는 다각형 간의 충돌로 인해 발생하는 유동 데이터를 계산하고, 유동 데이터에 기초하여 유체 해석 시뮬레이션을 수행할 수 있다.
SPH 알고리즘은 각 입자의 물성 정보(예컨대, 질량, 속도, 점성 및 가속도)를 이용하여 각 입자의 유동을 연산하는 것으로서, 각 입자의 물성 정보는 각 입자의 위치를 중심으로 한 방사형 베이시스 함수와 같은 커널 함수(Kernel Function) 세트를 사용하여 보간된다.
이러한 방식으로 각 입자의 물성 정보를 보간하면 나비에-스토크스 방정식과 같은 표준 방정식을 사용하여 유체의 동역학을 계산하는데 사용할 수 있는 압력 필드 및 점성 필드와 같은 연속 필드가 생성된다.
예를 들어, 나비에-스토크스 방정식은 유체를 다음과 같이 모델링한다.
Figure PCTKR2019018583-appb-M000001
수학식 2에서 "v"는 입자의 속도, "ρ"는 입자의 밀도, "p"는 입자에 대한 압력, "g"는 중력, “μ”는 유체의 점성계수를 나타낸다.
한편, SPH 알고리즘에 의하면, 각 입자의 밀도는 수학식 2에 의해 도출된다.
Figure PCTKR2019018583-appb-M000002
또한, 각 입자의 압력에 의한 힘은 수학식 3에 의해 도출된다.
Figure PCTKR2019018583-appb-M000003
또한, 각 입자의 점성에 의한 힘은 수학식 4에 의해 도출된다.
Figure PCTKR2019018583-appb-M000004
유동 데이터 계산부(270)는 SPH 알고리즘을 이용하여 각 입자의 밀도, 압력 및 점성 등의 유동 데이터의 변화값을 연산한다. 예를 들어, 유동 데이터 계산부(270)는 각 입자의 초기 유동 데이터에 기초하여 다음 시간 스텝(제 2 시간 스텝)에서의 각 입자의 유동 데이터를 연산하고, 이에 기초하여 각 입자의 유동을 연산한다.
또한, 유동 데이터 계산부(270)는 제 2 시간 스텝에서의 각 입자의 유동 데이터에 기초하여 그 다음 시간 스텝에서의 각 입자의 유동 데이터를 연산하고, 이에 기초하여 각 입자의 유동을 연산한다.
유동 데이터 계산부(270)는 각 시간 스텝에서의 각 입자의 유동 데이터를 연산하여 각 입자의 유동을 연산함으로써, 유체 해석 시뮬레이션을 수행할 수 있다.
도 9는 본 발명의 일 실시예에 따른 유체 해석 시뮬레이션 방법의 순서도이다. 도 9에 도시된 유체 해석 시뮬레이션 장치(100)에서 수행되는 유체 해석 시뮬레이션 방법(900)은 도 2에 도시된 실시예에 따라 유체 해석 시뮬레이션 장치(100)에 의해 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 2에 도시된 실시예에 따른 유체 해석 시뮬레이션 장치(100)에서 수행되는 유체 해석 시뮬레이션을 하는 방법에도 적용된다.
단계 S920에서 유체 해석 시뮬레이션 장치(100)는 복수의 입자에 관한 데이터를 입력받을 수 있다.
단계 S920에서 유체 해석 시뮬레이션 장치(100)는 복수의 입자가 존재하는 공간을 복수의 셀로 구획하고, 셀 인덱스를 생성할 수 있다.
단계 S930에서 유체 해석 시뮬레이션 장치(100)는 셀 참고 정보를 생성할 수 있다.
단계 S940에서 유체 해석 시뮬레이션 장치(100)는 입자 참고 정보를 생성할 수 있다.
단계 S950에서 유체 해석 시뮬레이션 장치(100)는 이웃 입자를 탐색할 수 있다.
단계 S960에서 유체 해석 시뮬레이션 장치(100)는 복수의 입자를 서로 교환할 수 있다.
단계 S970에서 유체 해석 시뮬레이션 장치(100)는 복수의 입자 간의 유동 데이터를 계산하고 유체 시뮬레이션을 수행할 수 있다.
상술한 설명에서, 단계 S920 내지 S970은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
도 2 내지 도 9를 통해 설명된 유체 해석 시뮬레이션 장치에서 유체 해석 시뮬레이션을 하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 또한, 도 2 내지 도 9를 통해 설명된 유체 해석 시뮬레이션 장치에서 유체 해석 시뮬레이션을 하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램의 형태로도 구현될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (19)

  1. 복수의 프로세서를 이용한 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석 시뮬레이션 장치에 있어서,
    제 1 프로세서; 및
    제 2 프로세서를 포함하되,
    상기 제 1 프로세서는,
    상기 제 1 프로세서에 할당된 제 1 공간을 복수의 셀로 구획하고, 제 1 공간이 구획된 복수의 셀의 정보에 기초하여 제 1 셀 참고 정보를 생성하고,
    상기 제 1 공간에 포함되어 있는 입자의 정보에 기초하여 제 1 입자 참고 정보를 생성하고,
    상기 제 2 프로세서는,
    상기 제 2 프로세서에 할당된 제 2 공간을 복수의 셀로 구획하고, 제 2 공간이 구획된 복수의 셀의 정보에 기초하여 제 2 셀 참고 정보를 생성하고,
    상기 제 2 공간에 포함되어 있는 입자의 정보에 기초하여 제 2 입자 참고 정보를 생성하고,
    상기 제 1 프로세서 및 상기 제 2 프로세서는,
    상기 제 1 셀 참고 정보, 상기 제 1 입자 참고 정보, 상기 제 2 셀 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 상기 복수의 입자를 서로 교환하고,
    상기 교환한 복수의 입자 간의 유동 데이터를 계산하고, 상기 유동 데이터에 기초하여 유체 시뮬레이션을 수행하는 것인, 유체 해석 시뮬레이션 장치.
  2. 제 1 항에 있어서,
    상기 제 1 프로세서는 상기 복수의 입자의 위치 정보 및 상기 제 1 공간에 대한 셀 인덱스에 기초하여 상기 제 1 입자 참고 정보를 생성하는 입자 정보 생성부; 및
    상기 셀 인덱스, 각 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 생성된 포함 정보를 포함하는 상기 제 1 셀 참고 정보를 생성하는 셀 정보 생성부
    를 포함하는 것인, 유체 해석 시뮬레이션 장치.
  3. 제 2 항에 있어서,
    상기 셀 참고 정보는 각 셀 인덱스 이전의 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 생성된 누적 정보를 더 포함하는 것인, 유체 해석 시뮬레이션 장치.
  4. 제 3 항에 있어서,
    상기 유체 해석 시뮬레이션 장치는 제 3 프로세서를 더 포함하고,
    상기 제 3 프로세서는,
    상기 제 1 셀 참고 정보 및 상기 제 2 셀 참고 정보에 기초하여 통합 셀 참고 정보를 생성하는 통합 셀 정보 생성부를 포함하는 셀 관리부; 및
    상기 제 1 입자 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 통합 입자 참고 정보를 생성하는 통합 입자 정보 생성부를 포함하는 입자 관리부
    를 포함하는 것인, 유체 해석 시뮬레이션 장치.
  5. 제 4 항에 있어서,
    상기 셀 관리부는 상기 통합 셀 참고 정보에 기초하여 상기 제 1 공간에 위치한 입자의 개수 및 상기 제 2 공간에 위치한 입자의 개수를 도출하고, 상기 제 1 공간에 위치한 입자의 개수 및 상기 제 2 공간에 위치한 입자의 개수에 기초하여 상기 제 1 프로세서로 상기 제 1 공간을 할당하고, 상기 제 2 프로세서로 상기 제 2 공간을 할당하는 영역 할당부
    를 더 포함하는 것인, 유체 해석 시뮬레이션 장치.
  6. 제 4 항에 있어서,
    상기 입자 관리부는 상기 제 2 셀 참고 정보에 기초하여 교환 대상 입자를 확인하고, 상기 제 2 셀 참고 정보의 누적 정보에 기초하여 상기 제 2 입자 참고 정보로부터 상기 교환 대상 입자의 정보를 추출하고, 상기 교환 대상 입자의 정보에 기초하여 상기 교환 대상 입자의 상기 제 1 프로세서로의 이동을 지시하는 입자 교환부
    를 더 포함하는 것인, 유체 해석 시뮬레이션 장치.
  7. 제 6 항에 있어서,
    상기 제 1 프로세서는 상기 제 2 프로세서로부터 상기 교환 대상 입자에 관한 데이터를 전달받는 입자 교환 수행부
    를 더 포함하는 것인, 유체 해석 시뮬레이션 장치.
  8. 제 7 항에 있어서,
    상기 입자 정보 생성부는 상기 교환 대상 입자의 정보에 기초하여 상기 제 1 입자 참고 정보를 업데이트하고,
    상기 셀 정보 생성부는 상기 교환 대상 입자의 정보에 기초하여 상기 제 1 셀 참고 정보를 업데이트하는 것인, 유체 해석 시뮬레이션 장치.
  9. 제 4 항에 있어서,
    상기 제 1 프로세서 및 상기 제 2 프로세서는 GPU(Graphics Processing Unit)이고, 상기 제 3 프로세서는 CPU(Central Processing Unit)인, 유체 해석 시뮬레이션 장치.
  10. 제 1 프로세서 및 제 2 프로세서를 포함하는 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석 시뮬레이션 장치에서 수행되는 방법에 있어서,
    상기 제 1 프로세서에 의해 상기 제 1 프로세서에 할당된 제 1 공간을 복수의 셀로 구획하는 단계;
    상기 제 1 프로세서에 의해 상기 제 1 공간이 구획된 복수의 셀의 정보에 기초하여 제 1 셀 참고 정보를 생성하는 단계;
    상기 제 1 프로세서에 의해 상기 제 1 공간에 포함되어 있는 입자의 정보에 기초하여 제 1 입자 참고 정보를 생성하는 단계;
    상기 제 2 프로세서에 의해 상기 제 2 프로세서에 할당된 제 2 공간을 복수의 셀로 구획하는 단계;
    상기 제 2 프로세서에 의해 상기 제 2 공간이 구획된 복수의 셀의 정보에 기초하여 제 2 셀 참고 정보를 생성하는 단계;
    상기 제 2 프로세서에 의해 상기 제 2 공간에 포함되어 있는 입자의 정보에 기초하여 제 2 입자 참고 정보를 생성하는 단계;
    상기 제 1 프로세서 및 상기 제 2 프로세서 각각에 의해 상기 제 1 셀 참고 정보, 상기 제 1 입자 참고 정보, 상기 제 2 셀 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 상기 복수의 입자를 서로 교환하는 단계;
    상기 제 1 프로세서 및 상기 제 2 프로세서 각각에 의해 상기 교환한 복수의 입자 간의 유동 데이터를 계산하고, 상기 유동 데이터에 기초하여 유체 시뮬레이션을 수행하는 것인, 유체 해석 시뮬레이션 방법.
  11. 제 10 항에 있어서,
    상기 제 1 프로세서에 의해 상기 복수의 입자의 위치 정보 및 상기 제 1 공간에 대한 셀 인덱스에 기초하여 상기 제 1 입자 참고 정보를 생성하는 단계; 및
    상기 제 1 프로세서에 의해 상기 셀 인덱스, 각 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 생성된 포함 정보를 포함하는 상기 제 1 셀 참고 정보를 생성하는 단계
    를 포함하는 것인, 유체 해석 시뮬레이션 방법.
  12. 제 11 항에 있어서,
    상기 셀 참고 정보는 각 셀 인덱스 이전의 셀 인덱스에 대응되는 셀에 포함되어 있는 입자의 개수에 기초하여 생성된 누적 정보를 더 포함하는 것인, 유체 해석 시뮬레이션 방법.
  13. 제 12 항에 있어서,
    상기 유체 해석 시뮬레이션 장치는 제 3 프로세서를 더 포함하고,
    상기 유체 해석 시뮬레이션 방법은,
    상기 제 3 프로세서에 의해 상기 제 1 셀 참고 정보 및 상기 제 2 셀 참고 정보에 기초하여 통합 셀 참고 정보를 생성하는 단계; 및
    상기 제 3 프로세서에 의해 상기 제 1 입자 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 통합 입자 참고 정보를 생성하는 단계
    를 포함하는 것인, 유체 해석 시뮬레이션 방법.
  14. 제 13 항에 있어서,
    상기 제 3 프로세서에 의해 상기 통합 셀 참고 정보에 기초하여 상기 제 1 공간에 위치한 입자의 개수 및 상기 제 2 공간에 위치한 입자의 개수를 도출하는 단계; 및
    상기 제 3 프로세서에 의해 상기 제 1 공간에 위치한 입자의 개수 및 상기 제 2 공간에 위치한 입자의 개수에 기초하여 상기 제 1 프로세서로 상기 제 1 공간을 할당하고, 상기 제 2 프로세서로 상기 제 2 공간을 할당하는 단계
    를 더 포함하는 것인, 유체 해석 시뮬레이션 방법.
  15. 제 13 항에 있어서,
    상기 제 3 프로세서에 의해 상기 제 2 셀 참고 정보에 기초하여 교환 대상 입자를 확인하는 단계;
    상기 제 3 프로세서에 의해 상기 제 2 셀 참고 정보의 누적 정보에 기초하여 상기 제 2 입자 참고 정보로부터 상기 교환 대상 입자의 정보를 추출하는 단계; 및
    상기 제 3 프로세서에 의해 상기 교환 대상 입자의 정보에 기초하여 상기 교환 대상 입자의 상기 제 1 프로세서로의 이동을 지시하는 단계
    를 더 포함하는 것인, 유체 해석 시뮬레이션 방법.
  16. 제 15 항에 있어서,
    상기 제 1 프로세서가 상기 제 2 프로세서로부터 상기 교환 대상 입자에 관한 데이터를 전달받는 단계
    를 더 포함하는 것인, 유체 해석 시뮬레이션 방법.
  17. 제 16 항에 있어서,
    상기 제 1 프로세서에 의해 상기 교환 대상 입자의 정보에 기초하여 상기 제 1 입자 참고 정보를 업데이트하는 단계; 및
    상기 제 1 프로세서에 의해 상기 교환 대상 입자의 정보에 기초하여 상기 제 1 셀 참고 정보를 업데이트하는 단계
    를 더 포함하는 것인, 유체 해석 시뮬레이션 방법.
  18. 제 13 항에 있어서,
    상기 제 1 프로세서 및 상기 제 2 프로세서는 GPU(Graphics Processing Unit)이고, 상기 제 3 프로세서는 CPU(Central Processing Unit)인, 유체 해석 시뮬레이션 방법.
  19. 복수의 프로세서를 이용한 SPH(Smoothed Particle Hydrodynamics) 기반의 유체 해석 시뮬레이션을 하는 명령어들의 시퀀스를 포함하는 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우,
    상기 복수의 프로세서는 제 1 프로세서 및 제 2 프로세서를 포함하고,
    해석 공간을 제 1 공간 및 제 2 공간으로 분할하고,
    상기 제 1 공간을 상기 제 1 프로세서에 할당하고, 상기 제 2 공간을 상기 제 2 프로세서에 할당하고,
    상기 제 1 프로세서에 의해 상기 제 1 공간을 복수의 셀로 구획하고,
    상기 제 1 프로세서에 의해 상기 제 1 공간이 구획된 복수의 셀의 정보에 기초하여 제 1 셀 참고 정보를 생성하고,
    상기 제 1 프로세서에 의해 상기 제 1 공간에 포함되어 있는 입자의 정보에 기초하여 제 1 입자 참고 정보를 생성하고,
    상기 제 2 프로세서에 의해 상기 제 2 공간을 복수의 셀로 구획하고,
    상기 제 2 프로세서에 의해 상기 제 2 공간이 구획된 복수의 셀의 정보에 기초하여 제 2 셀 참고 정보를 생성하고,
    상기 제 2 프로세서에 의해 상기 제 2 공간에 포함되어 있는 입자의 정보에 기초하여 제 2 입자 참고 정보를 생성하고,
    상기 제 1 프로세서 및 상기 제 2 프로세서 각각이 상기 제 1 셀 참고 정보, 상기 제 1 입자 참고 정보, 상기 제 2 셀 참고 정보 및 상기 제 2 입자 참고 정보에 기초하여 상기 복수의 입자를 서로 교환하고,
    상기 제 1 프로세서 및 상기 제 2 프로세서 각각이 상기 교환한 복수의 입자 간의 유동 데이터를 계산하고,
    상기 유동 데이터에 기초하여 유체 시뮬레이션을 수행하도록 하는 명령어들의 시퀀스를 포함하는, 매체에 저장된 컴퓨터 프로그램.
PCT/KR2019/018583 2019-12-13 2019-12-27 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램 WO2021117967A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980102957.8A CN114830118A (zh) 2019-12-13 2019-12-27 用于执行基于sph的流体分析模拟的装置、方法和计算机程序
US17/784,674 US20230019740A1 (en) 2019-12-13 2019-12-27 Apparatus, method, and computer program for performing sph-based fluid analysis simulation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0166623 2019-12-13
KR1020190166623A KR102200444B1 (ko) 2019-12-13 2019-12-13 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
WO2021117967A1 true WO2021117967A1 (ko) 2021-06-17

Family

ID=74127720

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/018583 WO2021117967A1 (ko) 2019-12-13 2019-12-27 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램

Country Status (4)

Country Link
US (1) US20230019740A1 (ko)
KR (1) KR102200444B1 (ko)
CN (1) CN114830118A (ko)
WO (1) WO2021117967A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009069930A (ja) * 2007-09-11 2009-04-02 Prometech Software Inc 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法
KR20120137828A (ko) * 2011-06-13 2012-12-24 한국과학기술원 멀티 레벨 소용돌이를 위한 sph 유체 시뮬레이션 방법, 시스템 및 이를 위한 기록 매체
KR20150133121A (ko) * 2014-05-19 2015-11-27 한국과학기술원 이웃 탐색 연산 시스템
JP2017091262A (ja) * 2015-11-11 2017-05-25 富士通株式会社 粒子シミュレーションプログラム、粒子シミュレーション装置、及び計算機資源配分方法
JP2018136947A (ja) * 2011-11-09 2018-08-30 エクサ コーポレイション 流体流れ及び音響挙動のコンピュータシミュレーション

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009069930A (ja) * 2007-09-11 2009-04-02 Prometech Software Inc 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法
KR20120137828A (ko) * 2011-06-13 2012-12-24 한국과학기술원 멀티 레벨 소용돌이를 위한 sph 유체 시뮬레이션 방법, 시스템 및 이를 위한 기록 매체
JP2018136947A (ja) * 2011-11-09 2018-08-30 エクサ コーポレイション 流体流れ及び音響挙動のコンピュータシミュレーション
KR20150133121A (ko) * 2014-05-19 2015-11-27 한국과학기술원 이웃 탐색 연산 시스템
JP2017091262A (ja) * 2015-11-11 2017-05-25 富士通株式会社 粒子シミュレーションプログラム、粒子シミュレーション装置、及び計算機資源配分方法

Also Published As

Publication number Publication date
KR102200444B1 (ko) 2021-01-08
CN114830118A (zh) 2022-07-29
US20230019740A1 (en) 2023-01-19
KR102200444B9 (ko) 2021-07-09

Similar Documents

Publication Publication Date Title
US8413166B2 (en) Multithreaded physics engine with impulse propagation
Ovaysi et al. Direct pore-level modeling of incompressible fluid flow in porous media
US8627329B2 (en) Multithreaded physics engine with predictive load balancing
KR102181989B1 (ko) 복수의 프로세서를 이용한 입자 기반의 유체 시뮬레이션 방법 및 유체 시뮬레이션 장치
WO2021117962A1 (ko) 더미 입자를 이용한 입자 기반의 유체 해석 시뮬레이션 방법 및 유체 해석 시뮬레이션 장치
WO2015119325A1 (ko) 지형 렌더링 방법
CN110300013A (zh) 在具有不同的应用命名的云域中执行策略
KR101715986B1 (ko) 신호 흐름이 프로그램된 디지털 신호 프로세서 코드의 효율적인 자원 관리를 위한 시스템 및 방법
JP6543557B2 (ja) 粒子シミュレーションプログラム、粒子シミュレーション装置、及び計算機資源配分方法
WO2014208909A1 (ko) 시뮬레이션 장치 및 분산 시뮬레이션 시스템
WO2021117963A1 (ko) Sph 기반의 유체 해석 시뮬레이션 장치 및 유체 해석 시뮬레이션 방법
WO2021117967A1 (ko) Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
WO2021117966A1 (ko) Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
WO2021117972A1 (ko) Lbm 기반의 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램
WO2011159085A2 (en) Method and apparatus for ray tracing in a 3-dimensional image system
WO2021117965A1 (ko) Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
WO2016093470A1 (ko) 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체
WO2021117964A1 (ko) Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
WO2021080122A1 (en) Method and apparatus for analyzing protein-ligand interaction using parallel operation
WO2016182255A1 (ko) 전자 장치 및 이의 페이지 병합 방법
KR102436665B1 (ko) 고 레이놀즈 수의 유동 해석을 위한 다중 격자 lbm 및 les 기반의 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램
WO2015023106A1 (en) Apparatus and method for processing image
Deng et al. G-ML-Octree: an update-efficient index structure for simulating 3D moving objects across GPUs
US11892387B2 (en) Information processing apparatus and method and system for particle simulation
WO2024122729A1 (ko) 물리 시뮬레이션 서버의 스케일링 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19956121

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19956121

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 13.12.2022)

122 Ep: pct application non-entry in european phase

Ref document number: 19956121

Country of ref document: EP

Kind code of ref document: A1