KR101489708B1 - Memory control algorithm, method and apparatus using the same for fluid numerical analysis based on lattice boltzmann method - Google Patents

Memory control algorithm, method and apparatus using the same for fluid numerical analysis based on lattice boltzmann method Download PDF

Info

Publication number
KR101489708B1
KR101489708B1 KR20140080077A KR20140080077A KR101489708B1 KR 101489708 B1 KR101489708 B1 KR 101489708B1 KR 20140080077 A KR20140080077 A KR 20140080077A KR 20140080077 A KR20140080077 A KR 20140080077A KR 101489708 B1 KR101489708 B1 KR 101489708B1
Authority
KR
South Korea
Prior art keywords
storage space
particle distribution
array structure
node
nodes
Prior art date
Application number
KR20140080077A
Other languages
Korean (ko)
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
Application filed by 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Priority to KR20140080077A priority Critical patent/KR101489708B1/en
Application granted granted Critical
Publication of KR101489708B1 publication Critical patent/KR101489708B1/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N15/00Investigating characteristics of particles; Investigating permeability, pore-volume, or surface-area of porous materials
    • G01N15/08Investigating permeability, pore-volume, or surface area of porous materials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Abstract

According to embodiments of the present invention, a method for a fluid numerical analysis based on the lattice Boltzmann method performed by a computer comprises the steps of: (a) computing particle distribution functions based on the lattice Boltzmann equation in each of a plurality of directions with respect to each of nodes connected to each other in each direction; and (b) advecting the particle distribution functions of the nodes with respect to each direction by replacing a pointer within an address range, where a particle distribution function of a node of interest in a specific direction i is stored, with a pointer indicating a temporary storage space, where the particle distribution function in the specific direction i is copied from a neighboring node opposite to an opposite direction i and is stored, with respect to the specific direction i of the node of interest, in order to spread particle distribution functions of each node to neighboring nodes in an array structure storage space where the particle distribution functions of the nodes are stored in each direction, depending on a result of the computation.

Description

메모리 제어 알고리즘과 이를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 방법 및 장치{MEMORY CONTROL ALGORITHM, METHOD AND APPARATUS USING THE SAME FOR FLUID NUMERICAL ANALYSIS BASED ON LATTICE BOLTZMANN METHOD }[0001] MEMORY CONTROL ALGORITHM METHOD AND APPARATUS USING THE SAME FOR FLUID NUMERICAL ANALYSIS BASED ON LATTICE BOLTZMANN METHOD [0002]

본 발명은 유체 수치 해석 기술에 관한 것으로, 더욱 상세하게는, 격자 볼츠만 기법 기반의 유체 수치 해석 기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a fluid numerical analysis technique, and more particularly, to a fluid numerical analysis technique based on a lattice Boltzmann technique.

유체를 시뮬레이션하는 방법은 유체를 구성하는 입자의 거동을 중심으로 하고 입자와 입자 사이의 상호 작용에 기반하는 라그랑지언 기법(Lagrangian approach)과 유체가 지나가는 공간, 즉 격자(lattice)의 경계에서 일어나는 현상에 기반하는 오일리언 기법(Eulerian approach)로 크게 나눌 수 있다.Fluid simulation is based on the Lagrangian approach based on the interaction between particles and particles, focusing on the behavior of the particles that make up the fluid, and the phenomena that occur at the boundary of the lattice, Based on the Eulerian approach (Eulerian approach) can be roughly divided into.

격자 기반의 기법 중에서도 격자 볼츠만 방정식(Lattice Boltzmann Equation)을 이용하는 격자 볼츠만 기법(Lattice Boltzmann Method, LBM)은 기존의 유체 해석 기법들이 연속체(continuity) 개념에 기반하는 것과 달리, 분자 운동론을 따르는 가상의 입자를 개별 격자 내에서 이동시키면서 유동을 해석한다.The Lattice Boltzmann Method (LBM), which uses the Lattice Boltzmann Equation (LBM) among the grid-based techniques, is based on the concept of continuity, Is analyzed in the individual grids while the flow is being analyzed.

유체 해석의 기본 공식인 나비에-스톡스 공식(Navier-Stokes equation)이 비선형 항을 포함하고 있어서 선형화하려면 적절하게 가정을 하여야 하고 경계 조건에 매우 민감하며 불규칙한 경계에서 해석치의 수렴에 문제가 있지만 LBM은 선형적이므로 상대적으로 알고리즘도 간단한 편이다.Although the Navier-Stokes equation, which is the basic formula for fluid analysis, contains a nonlinear term, it must be assumed appropriately for linearization, very sensitive to boundary conditions, and problematic in convergence of analytical values at irregular boundaries, Since it is linear, the algorithm is relatively simple.

또한 LBM은 유체의 유동을 각각의 격자점에서 계산하므로 병렬화가 가능하여 최근에 확산되고 있는 병렬 연산 컴퓨팅에 적합하다.In addition, LBM computes the flow of fluid at each lattice point, so parallelization is possible and is suitable for parallel computing which is spreading recently.

LBM은 크게 두 단계의 연산 단계, 즉 충돌 연산 단계(collision step)와 이류 단계(streaming step)를 가진다. 충돌 연산 단계는 격자 내에서 입자 간의 충돌에 의해 방향별 입자 분포 함수들(particle distribution functions, pdf)을 재분배하는 단계이고, 이류 단계는 재분배된 방향별 입자 분포 함수들이 각각 대응되는 입자속도에 따라 이웃하는 격자로 이동되는 단계이다.The LBM has two stages of computation: a collision step and a streaming step. The collision calculation step is a step of redistributing the particle distribution functions (pdf) by the collision between the particles in the lattice, and the advection step is a step in which the redistributed directional particle distribution functions, To the grid.

모든 격자점에 대하여 유체의 방향별 입자 분포 함수가 정의되며, 각 데이터는 격자들과 방향들을 각각 행과 열로 가지는 어레이 구조(Structure of Array, SoA)라고 불리는 메모리 구조에 저장된다. For every lattice point, a particle distribution function is defined for each direction of fluid, and each data is stored in a memory structure called Structure of Array (SoA) with grids and directions in rows and columns, respectively.

어레이 구조 내의 데이터들은 이류 단계 동안에 이웃하는 격자들 사이에서 동시적으로 서로 자리를 바꾸어야 하기 때문에, 입자 분포 함수 데이터가 저장되는 어레이 구조 저장 공간에 대한 효율적인 제어 알고리즘이 필요하게 된다.Since the data in the array structure must be mutually displaced with respect to each other between neighboring grids during the advection step, an efficient control algorithm for the array structure storage space in which the particle distribution function data is stored becomes necessary.

종래에 제안된 나이브(naive) 메모리 제어 알고리즘은 비어 있는 새 어레이 구조를 생성하고 직전의 어레이 구조로부터 매 격자마다 순차적으로 새 어레이 구조 내의 상응하는 이웃 격자 내의 방향별 데이터 위치에 PDF를 복사하며, 모든 격자에 대해 복사가 완료되면 새 어레이 구조를 가지고 다시 충돌 연산 단계를 수행하며, 다음 차례의 이류 단계를 위해 기존 어레이 구조를 비우는 방식으로 메모리를 제어하는 알고리즘이다.The conventionally proposed naive memory control algorithm creates an empty new array structure and copies the PDFs to the orientation data locations in the corresponding neighboring grids in the new array structure sequentially for each lattice from the previous array structure, When the copy is completed for the grid, the collision operation step is performed again with the new array structure, and the memory is controlled by emptying the existing array structure for the next advection step.

이러한 나이브 알고리즘은 메모리가 두 배로 들기 때문에 대규모의 유체 해석 시에는 문제가 있었다.This nab algorithm doubled memory, which was problematic for large-scale fluid analysis.

이러한 문제를 해결하기 위해 제안된 스왑(swap) 메모리 제어 알고리즘은 메모리 요구량을 줄이기 위한 기법으로서, 먼저 이류 단계가 시작되면 각 격자 내에서 서로 마주하는 방향들끼리 입자 분포 함수 데이터의 자리를 맞바꾸고(swap), 해당 격자의 특정 방향의 입자 분포 함수 데이터와 이웃 격자에 있는 마주하는 방향에 있는 입자 분포 함수 데이터를 서로 맞바꾸는(swap) 방식으로 메모리를 제어하는 알고리즘이다. In order to solve this problem, the swap memory control algorithm proposed is a method to reduce the memory requirement. First, when the advection phase starts, the position of the particle distribution function data is reversed between directions facing each other in each lattice swap) and an algorithm that controls the memory by swapping the particle distribution function data in the specific direction of the lattice and the particle distribution function data in the facing direction in the neighboring lattice.

스왑 알고리즘은 하나의 어레이 구조만큼의 메모리와 약간의 임시 저장 공간만 필요하므로 필요한 메모리 용량은 나이브 알고리즘에 비해 크게, 대체로 절반 정도로 줄었지만, 입자 분포 함수 데이터를 단순 복사하는 것이 아닌, 맞바꾸는 동작에서 훨씬 큰 메모리 대역폭을 필요로 하게 되어 결과적으로 이류 단계에서 시간이 많이 소요된다.The swap algorithm requires as much memory and only a small amount of temporary storage space as an array structure, so the required memory capacity is largely reduced to about half compared with the Naive algorithm. However, instead of simply copying the particle distribution function data, It requires a much larger memory bandwidth, which results in a longer time in the advection step.

이 밖에 A-A 패턴 메모리 제어 알고리즘도 스왑 메모리 제어 알고리즘과 같이 메모리 요구량은 나이브 알고리즘에 비해 절반 정도이지만, 홀수 과정과 짝수 과정으로 분리하기 때문에 스왑 메모리 제어 알고리즘보다 더 복잡하다. 무엇보다, 이류 단계와 충돌 연산 단계가 묶여서 수행되어, 이류 단계 이후 밀도 구배(density gradient) 계산 및 충돌 연산 단계 이후의 상 분리(phase segregation)를 수행해야 하는 다상 유동에서는 A-A 패턴 메모리 제어 알고리즘은 적용하기 어렵다.In addition, the A-A pattern memory control algorithm is more complicated than the swap memory control algorithm because the memory requirement is about half that of the nave algorithm like the swap memory control algorithm, but is divided into the odd process and the even process. First of all, the AA pattern memory control algorithm is applied in the polyphase flow where the advection step and the collision calculation step are performed in a bundled manner and the density gradient calculation after the advection step and the phase segregation after the collision calculation step have to be performed It is difficult to do.

이에 따라, 격자 볼츠만 기법 기반 유체 수치 해석 기법에서 메모리 용량을 늘리지 않고 이류 단계의 처리 속도도 빠르며 다상 유동에서도 적용할 수 있는 메모리 제어 알고리즘이 필요하다.In this paper, we propose a memory control algorithm that can be applied to multiphase flow without increasing memory capacity.

본 발명이 해결하고자 하는 과제는 메모리 제어 알고리즘과 이를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 방법 및 장치를 제공하는 데에 있다.A problem to be solved by the present invention is to provide a memory control algorithm and a method and an apparatus for numerical analysis of a fluid based on a lattice Boltzmann technique using the same.

본 발명이 해결하고자 하는 과제는 어레이 구조 외에 메모리 용량을 크게 늘리지 않는 메모리 제어 알고리즘과 이를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 방법 및 장치를 제공하는 데에 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a memory control algorithm that does not greatly increase memory capacity in addition to an array structure, and a method and apparatus for fluid numerical analysis based on a Grid Boltzmann technique using the memory control algorithm.

본 발명이 해결하고자 하는 과제는 이류 단계에서 어레이 구조 내의 각 격자들의 입자 분포 함수들을 이웃 격자로 이동시키는 데에 필요한 메모리 대역폭이 낮은 메모리 제어 알고리즘과 이를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 방법 및 장치를 제공하는 데에 있다.A problem to be solved by the present invention is to provide a memory control algorithm having a low memory bandwidth required to move the particle distribution functions of the respective gratings in the array structure to the neighboring grids in the advection step, To provide.

본 발명이 해결하고자 하는 과제는 이류 단계에 필요한 시간을 감축시켜 동일한 총 연산 시간 동안에 더 긴 시뮬레이션을 수행할 수 있게 하는 메모리 제어 알고리즘과 이를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 방법 및 장치를 제공하는 데에 있다.SUMMARY OF THE INVENTION The present invention is directed to a memory control algorithm that allows a longer simulation to be performed during the same total computation time by reducing the time required for advection, and a method and apparatus for fluid numerical analysis based on a Grid Boltzmann technique using the same. .

본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확히 이해될 수 있을 것이다.The solution to the problem of the present invention is not limited to those mentioned above, and other solutions not mentioned can be clearly understood by those skilled in the art from the following description.

본 발명의 일 측면에 따른, 컴퓨터가 수행하는 격자 볼츠만 기법 기반 유체 수치 해석 방법에 있어서,According to an aspect of the present invention, there is provided a computer-implemented lattice Boltzmann technique based fluid numerical analysis method,

(a) 복수의 방향 별로 서로 연결된 노드들의 각각에 대하여, 각 방향마다 입자 분포 함수들을 격자 볼츠만 방정식에 기초하여 연산하는 단계; 및(a) computing, for each of the nodes connected to each other in the plurality of directions, the particle distribution functions for each direction based on the lattice Boltzmann equation; And

(b) 상기 연산의 결과에 따라 방향별로 노드들의 입자 분포 함수들이 저장된 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키기 위해, 관심 대상 노드의 특정 방향 i에 관하여, 반대 방향 i'에 대향한 이웃 노드로부터 특정 방향 i의 입자 분포 함수가 복사되어 저장되는 임시 저장 공간을 가리키는 포인터로써 특정 방향 i의 관심 대상 노드의 입자 분포 함수가 저장된 어드레스 범위의 포인터를 대체함으로써, 모든 방향들에 관하여 관심 대상 노드의 입자 분포 함수들을 이류시키는 단계를 포함할 수 있다.(b) in order to spread the particle distribution functions of each node to the neighbor nodes in the array structure storage space storing the particle distribution functions of the nodes according to the result of the operation, By replacing the pointer of the address range in which the particle distribution function of the interested node in the specific direction i is stored as a pointer to the temporary storage space in which the particle distribution function of the specific direction i is copied and stored from the neighboring node facing the direction i ' And aliasing the particle distribution functions of the node of interest with respect to the directions.

일 실시예에 따라, 상기 (b) 단계는,According to an embodiment, the step (b)

방향 i에 관하여 전체 노드들의 입자 분포 함수들을 저장할 임시 저장 공간을 생성하는 단계; Creating a temporary storage space for storing particle distribution functions of all nodes with respect to direction i;

상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 이웃 노드의 방향 i의 저장 위치에 저장된 입자 분포 함수를 방향 i에 관한 상기 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 동작을 반복함으로써 방향 i에 관한 상기 임시 저장 공간에 방향 i에 관한 전체 노드들의 입자 분포 함수들을 저장하는 단계; 및Referring to the array structure storage space, a particle distribution function stored in a storage location of a direction i of a neighboring node opposite to i 'in the opposite direction of the node of interest to a storage location of a node of interest in the temporary storage space Storing the particle distribution functions of all nodes with respect to direction i in said temporary storage space with respect to direction i by repeating the storing operation; And

상기 어레이 구조 저장 공간 내에서 방향 i에 관한 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 상기 임시 저장 공간 내에 입자 분포 함수들이 저장된 어드레스 범위의 포인터로써 대체하는 동작을 모든 방향들의 각각에 대해 반복하는 단계를 포함할 수 있다.The operation of replacing the pointer of the address range in which the particle distribution functions of all nodes with respect to direction i in the array structure storage space is stored with a pointer of the address range in which the particle distribution functions are stored in the temporary storage space with respect to direction i, And repeating for each.

일 실시예에 따라, 상기 (b) 단계는,According to an embodiment, the step (b)

적어도 두 방향들 i 및 j에 관하여 전체 노드들의 입자 분포 함수들을 각각 저장할 적어도 두 벌의 임시 저장 공간들을 생성하는 단계;Creating at least two sets of temporary storage spaces for storing respective particle distribution functions of all nodes with respect to at least two directions i and j, respectively;

상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 방향들 i 및 j의 반대 방향들 i' 및 j'에 각각 대향한 이웃 노드들의 방향들 i 및 j의 저장 위치들에 각각 저장된 입자 분포 함수들을 방향들 i 및 j에 관한 상기 임시 저장 공간들 내의 관심 대상 노드의 저장 위치들에 각각 저장하는 동작을 반복함으로써 방향들 i 및 j에 관한 상기 임시 저장 공간들에 방향들 i 및 j에 관한 전체 노드들의 입자 분포 함수들을 각각 저장하는 단계; 및Referring to the array structure storage space, particle distribution functions stored in storage locations i and j of directions i and j of neighboring nodes, respectively opposite to directions i 'and j' J in the temporary storage spaces with respect to directions i and j, respectively, to the temporary storage spaces with respect to directions i and j, Respectively; And

상기 어레이 구조 저장 공간 내에서 방향들 i 및 j에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위들의 포인터들을 방향들 i 및 j에 관한 임시 저장 공간들 내에 입자 분포 함수들이 저장되는 어드레스 범위들의 포인터들로써 대체하는 동작을 적어도 두 개의 방향들로 구성된 방향 그룹들 각각에 대해 반복하는 단계를 포함할 수 있다.Pointers of address ranges in which the particle distribution functions of all nodes in relation to directions i and j in the array structure storage space are stored are pointers to address ranges in which particle distribution functions are stored in temporary storage spaces for directions i and j Repeating the replacing operation for each of the direction groups consisting of at least two directions.

일 실시예에 따라, 상기 단계 (b)는,According to one embodiment, the step (b)

방향 i 및 반대 방향 i'에 관하여 관심 대상 노드의 입자 분포 함수들을 각각 저장할 수 있는 제1 및 제2 임시 저장 공간들을 생성하는 단계;Generating first and second temporary storage spaces each capable of storing particle distribution functions of a node of interest with respect to a direction i and an opposite direction i ';

상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 방향 i의 반대 방향 i'에 대향한 제1 이웃 노드에서 방향 i의 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 제1 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계;Referring to the array structure storage space, a first particle distribution function stored in a storage location of direction i at a first neighbor node opposite to direction i 'of direction i of the interested node is referred to as a first temporary storage space In a storage location of a node of interest in the network;

상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드에서 반대 방향 i'의 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 제2 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계;Referring to the array structure storage space, a second particle distribution function stored in the storage location of the opposite direction i 'at the second neighbor node facing the direction i of the interested node is stored in the second temporary storage space Storing in a storage location of a node of interest;

상기 어레이 구조 저장 공간 내에 방향 i에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 상기 제1 임시 저장 공간 내에 입자 분포 함수들이 저장되는 어드레스 범위의 포인터로써 대체하는 단계; 및Replacing the pointer of the address range in which the particle distribution functions of all the nodes are stored in the array structure storage space with respect to the direction i with a pointer of the address range in which the particle distribution functions are stored in the first temporary storage space with respect to the direction i; And

상기 어레이 구조 저장 공간 내에 반대 방향 i'에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 반대 방향 i'에 관한 상기 제2 임시 저장 공간 내에 입자 분포 함수들이 저장되는 어드레스 범위의 포인터로써 대체하는 단계를 포함할 수 있다.A pointer in the address range in which the particle distribution functions of all nodes are stored in the array structure storage space in the opposite direction i 'is replaced with a pointer in the address range in which the particle distribution functions are stored in the second temporary storage space in the opposite direction i' .

일 실시예에 따라, 상기 단계 (b)에서 상기 임시 저장 공간을 제공하기 위해 필요한 메모리 공간은 단계 (a) 동안에 연산 결과의 일시적 저장을 위해 이용되는 메모리 공간을 활용하여 제공될 수 있다.According to one embodiment, the memory space required to provide the temporary storage space in step (b) may be provided utilizing memory space used for temporal storage of the computation results during step (a).

일 실시예에 따라, 상기 단계 (b)에서 상기 임시 저장 공간은 직전에 이류된 특정 방향 및 반대 방향에 관하여 상기 어레이 구조 저장 공간 내에 속하였던 어드레스 범위에 상응할 수 있다.According to one embodiment, in the step (b), the temporary storage space may correspond to an address range that belonged to the array structure storage space with respect to the specific direction and the opposite direction that was immediately preceded.

본 발명의 다른 측면에 따라, 컴퓨터가 수행하는 격자 볼츠만 기법 기반 유체 수치 해석 방법에 있어서,According to another aspect of the present invention, there is provided a computer-implemented lattice Boltzmann technique-based fluid numerical analysis method,

충돌 연산의 결과에 따라 방향별로 노드들의 입자 분포 함수들이 저장된 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키기 위해,In order to spread the particle distribution functions of each node to the neighbor nodes in the array structure storage space storing the particle distribution functions of the nodes according to the result of the collision calculation,

(i) 전체 노드들의 방향 i의 입자 분포 함수들 및 반대 방향 i'의 입자 분포 함수들을 각각 저장할 제1 및 제2 임시 저장 공간들을 포함하는 부분 어레이 구조 저장 공간을 마련하는 단계;(i) providing a partial array structure storage space including first and second temporary storage spaces for storing the particle distribution functions in direction i of all nodes and the particle distribution functions in opposite direction i ', respectively;

(ii) 상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 제1 이웃 노드의 방향 i에 상응하는 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 상기 제1 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계;(ii) a first particle distribution function stored in a storage location corresponding to a direction i of a first neighbor node facing the opposite direction i 'of the node of interest, with reference to the array structure storage space, Storing in a storage location of a node of interest in a temporary storage space;

(iii) 상기 어레이 구조 저장 공간을 참조하여, 상기 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드의 반대 방향 i'에 상응하는 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 상기 제2 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계;(iii) a second particle distribution function stored in a storage location corresponding to the opposite direction i 'of the second neighbor node facing the direction i of the node of interest, with reference to the array structure storage space, Storing in a storage location of a node of interest in the second temporary storage space;

(iv) 상기 어레이 구조 저장 공간 내의 모든 노드들에 대하여, 단계 (ii) 내지 단계 (iii)를 반복하는 단계;(iv) repeating steps (ii) through (iii) for all nodes in the array structure storage space;

(v) 상기 어레이 구조 저장 공간 내의 방향 i의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 상기 제1 임시 저장 공간의 어드레스 포인터와 맞바꿈하는 단계;(v) swapping a pointer of an address range in which particle distribution functions of direction i in the array structure storage space are stored with an address pointer of the first temporary storage space;

(vi) 상기 어레이 구조 저장 공간 내의 반대 방향 i'의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 상기 제2 임시 저장 공간의 어드레스 포인터와 맞바꿈하는 단계; 및(vi) swapping a pointer of the address range in which the particle distribution functions in the opposite direction i 'in the array structure storage space are stored with an address pointer of the second temporary storage space; And

(vii) 모든 방향 i 및 반대 방향 i'에 대하여, 단계 (i) 내지 단계 (vi)을 반복하는 단계를 포함할 수 있다.(vii) repeating steps (i) through (vi) for all directions i and the opposite direction i '.

일 실시예에 따라, 상기 단계 (i) 내지 단계 (vii)에서 상기 제1 및 제2 임시 저장 공간들을 제공하기 위해 필요한 메모리 공간은 충돌 연산 단계 중에 연산 결과의 일시적인 저장을 위해 이용되는 메모리 공간을 활용하여 제공될 수 있다.According to one embodiment, the memory space required to provide the first and second temporary storage spaces in the steps (i) to (vii) may include a memory space used for temporal storage of the operation result during the conflict operation step Can be provided.

일 실시예에 따라, 상기 단계 (i)에서 마련되는 상기 제1 및 제2 임시 저장 공간들은 직전에 수행된 단계 (v) 및 단계 (vi) 동안에 특정 방향 및 반대 방향에 관하여 상기 어레이 구조 저장 공간 내에 속하였던 어드레스 범위들에 상응할 수 있다.According to one embodiment, the first and second temporary storage spaces provided in step (i) are arranged in the array structure storage space < RTI ID = 0.0 >Lt; / RTI > may correspond to address ranges that have been in the < / RTI >

본 발명의 다른 측면에 따른 컴퓨터를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 장치에 있어서,According to another aspect of the present invention, there is provided a computer-based lattice Boltzmann technique-based fluid numerical analysis apparatus,

복수의 방향 별로 서로 연결된 노드들의 각각에 대하여, 각 방향마다 입자 분포 함수들을 격자 볼츠만 방정식에 기초하여 연산하는 충돌 연산부;A collision computing unit for computing, based on a grid Boltzmann equation, particle distribution functions for each direction for each of nodes connected to each other in a plurality of directions;

방향들 및 노드들에 의해 행과 열이 정의되고 또한 방향별로 모든 노드들의 입자 분포 함수들을 저장하는 어레이 구조 저장 공간 및 적어도 하나의 특정 방향에 관하여 모든 노드들의 입자 분포 함수들을 적어도 하나의 임시 저장 공간에 저장하기 위한 부분 어레이 구조 저장 공간을 제공하는 메모리; 및An array structure storage space in which rows and columns are defined by directions and nodes and which also stores particle distribution functions of all nodes by direction, and particle distribution functions of all nodes with respect to at least one specific direction into at least one temporary storage space A memory for providing a partial array structure storage space for storing the partial array structure storage space; And

상기 연산의 결과에 따라 상기 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키기 위해, 관심 대상 노드의 특정 방향 i에 관하여 반대 방향 i'에 대향한 이웃 노드로부터 특정 방향 i의 입자 분포 함수를 복사하여 저장한 상기 임시 저장 공간을 가리키는 포인터로써 특정 방향 i의 관심 대상 노드의 입자 분포 함수가 저장된 어드레스 범위의 포인터를 대체함으로써, 모든 방향들에 관하여 관심 대상 노드의 입자 분포 함수들을 이류시키는 이류 메모리 제어부를 포함할 수 있다.In order to spread the particle distribution functions of the respective nodes in the array structure storage space according to the result of the operation to the neighboring nodes, a specific direction i from the neighboring node facing the opposite direction i ' The pointer of the address range in which the particle distribution function of the interested node in the specific direction i is stored is replaced with a pointer indicating the temporary storage space in which the particle distribution function of the interested node is copied and stored, And an advection memory control unit for diverting the input signals.

일 실시예에 따라, 상기 이류 메모리 제어부는,According to one embodiment, the advection memory control unit comprises:

상기 메모리 내에, 방향 i에 관하여 전체 노드들의 입자 분포 함수들을 저장할 상기 임시 저장 공간을 생성하고,Generating in the memory temporary storage space for storing particle distribution functions of all nodes with respect to direction i,

상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 이웃 노드의 방향 i의 저장 위치에 저장된 입자 분포 함수를 방향 i에 관한 상기 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 동작을 반복함으로써 방향 i에 관한 상기 임시 저장 공간에 방향 i에 관한 전체 노드들의 입자 분포 함수들을 저장하며,Referring to the array structure storage space, a particle distribution function stored in a storage location of a direction i of a neighboring node opposite to i 'in the opposite direction of the node of interest to a storage location of a node of interest in the temporary storage space Storing the particle distribution functions of all nodes with respect to direction i in said temporary storage space with respect to direction i,

상기 어레이 구조 저장 공간 내에서 방향 i에 관한 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 상기 임시 저장 공간 내에 입자 분포 함수들이 저장된 어드레스 범위의 포인터로써 대체하는 동작을 모든 방향들의 각각에 대해 반복하도록 동작할 수 있다.The operation of replacing the pointer of the address range in which the particle distribution functions of all nodes with respect to direction i in the array structure storage space is stored with a pointer of the address range in which the particle distribution functions are stored in the temporary storage space with respect to direction i, For each < / RTI >

일 실시예에 따라, 상기 이류 메모리 제어부는,According to one embodiment, the advection memory control unit comprises:

상기 메모리 내에, 적어도 두 방향들 i 및 j에 관하여 전체 노드들의 입자 분포 함수들을 각각 저장할 적어도 두 벌의 임시 저장 공간들을 생성하고,Generating at least two temporary storage spaces in the memory, each of which stores particle distribution functions of all nodes with respect to at least two directions i and j,

상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 방향들 i 및 j의 반대 방향들 i' 및 j'에 각각 대향한 이웃 노드들의 방향들 i 및 j의 저장 위치들에 각각 저장된 입자 분포 함수들을 방향들 i 및 j에 관한 상기 임시 저장 공간들 내의 관심 대상 노드의 저장 위치들에 각각 저장하는 동작을 반복함으로써 방향들 i 및 j에 관한 상기 임시 저장 공간들에 방향들 i 및 j에 관한 전체 노드들의 입자 분포 함수들을 각각 저장하며,Referring to the array structure storage space, particle distribution functions stored in storage locations i and j of directions i and j of neighboring nodes, respectively opposite to directions i 'and j' J in the temporary storage spaces with respect to directions i and j, respectively, to the temporary storage spaces with respect to directions i and j, Respectively,

상기 어레이 구조 저장 공간 내에서 방향들 i 및 j에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위들의 포인터들을 방향들 i 및 j에 관한 임시 저장 공간들 내에 입자 분포 함수들이 저장되는 어드레스 범위들의 포인터들로써 대체하는 동작을 적어도 두 개의 방향들로 구성된 방향 그룹들 각각에 대해 반복하도록 동작할 수 있다.Pointers of address ranges in which the particle distribution functions of all nodes in relation to directions i and j in the array structure storage space are stored are pointers to address ranges in which particle distribution functions are stored in temporary storage spaces for directions i and j And alternate repeating operations for each of the direction groups consisting of at least two directions.

일 실시예에 따라, 상기 이류 메모리 제어부는,According to one embodiment, the advection memory control unit comprises:

상기 메모리 내에, 방향 i 및 반대 방향 i'에 관하여 관심 대상 노드의 입자 분포 함수들을 각각 저장할 수 있는 제1 및 제2 임시 저장 공간들을 생성하고,Generating first and second temporary storage spaces in the memory, each of which can store particle distribution functions of a node of interest with respect to a direction i and an opposite direction i '

상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 방향 i의 반대 방향 i'에 대향한 제1 이웃 노드에서 방향 i의 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 제1 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하며,Referring to the array structure storage space, a first particle distribution function stored in a storage location of direction i at a first neighbor node opposite to direction i 'of direction i of the interested node is referred to as a first temporary storage space In a storage location of a node of interest within the network,

상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드에서 반대 방향 i'의 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 제2 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하고,Referring to the array structure storage space, a second particle distribution function stored in the storage location of the opposite direction i 'at the second neighbor node facing the direction i of the interested node is stored in the second temporary storage space Storing it in a storage location of a node of interest,

상기 어레이 구조 저장 공간 내에 방향 i에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 상기 제1 임시 저장 공간 내에 입자 분포 함수들이 저장되는 어드레스 범위의 포인터로써 대체하며,A pointer of an address range in which the particle distribution functions of all nodes are stored in the array structure storage space with respect to direction i is replaced with a pointer of an address range in which particle distribution functions are stored in the first temporary storage space with respect to direction i,

상기 어레이 구조 저장 공간 내에 반대 방향 i'에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 반대 방향 i'에 관한 상기 제2 임시 저장 공간 내에 입자 분포 함수들이 저장되는 어드레스 범위의 포인터로써 대체하도록 동작할 수 있다.A pointer in the address range in which the particle distribution functions of all nodes are stored in the array structure storage space in the opposite direction i 'is replaced with a pointer in the address range in which the particle distribution functions are stored in the second temporary storage space in the opposite direction i' Lt; / RTI >

일 실시예에 따라, 상기 메모리 내에서 상기 임시 저장 공간을 제공하기 위해 필요한 메모리 공간은 상기 충돌 연산부가 연산 결과의 일시적 저장을 위해 이용되는 메모리 공간을 활용하여 제공될 수 있다.According to one embodiment, the memory space required to provide the temporary storage space in the memory may be provided utilizing the memory space in which the conflict operation unit is used for temporal storage of operation results.

일 실시예에 따라, 상기 메모리 내에 마련되는 상기 임시 저장 공간은 직전에 이류된 특정 방향 및 반대 방향에 관하여 상기 어레이 구조 저장 공간 내에 속하였던 어드레스 범위에 상응할 수 있다.According to one embodiment, the temporary storage space provided in the memory may correspond to an address range that belonged to the array structure storage space with respect to the specific direction and the opposite direction that was immediately preceded.

본 발명의 또 다른 측면에 따른 컴퓨터를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 장치에 있어서,According to another aspect of the present invention, there is provided a computer-based grating Boltzmann technique-based fluid numerical analysis apparatus,

복수의 방향 별로 서로 연결된 노드들의 각각에 대하여, 각 방향마다 입자 분포 함수들을 격자 볼츠만 방정식에 기초하여 연산하는 충돌 연산부;A collision computing unit for computing, based on a grid Boltzmann equation, particle distribution functions for each direction for each of nodes connected to each other in a plurality of directions;

방향들 및 노드들에 의해 행과 열이 정의되고 또한 방향별로 모든 노드들의 입자 분포 함수들을 저장하는 어레이 구조 저장 공간과, 특정 방향 및 반대 방향에 관하여 모든 노드들의 입자 분포 함수들을 두 개의 임시 저장 공간들에 저장하기 위한 부분 어레이 구조 저장 공간을 제공하는 메모리; 및An array structure storage space in which rows and columns are defined by directions and nodes and also stores particle distribution functions of all the nodes in a direction and a particle array storage space in which all particle distribution functions of all nodes in a specific direction and a reverse direction are stored in two temporary storage spaces A memory for providing a partial array structure storage space for storing in a memory; And

충돌 연산의 결과에 따라 방향별로 노드들의 입자 분포 함수들이 저장된 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키는 이류 메모리 제어부를 포함하고,And an advection memory control unit for diffusing the particle distribution functions of each node into neighboring nodes in the array structure storage space storing the particle distribution functions of the nodes according to the result of the collision calculation,

상기 이류 메모리 제어부는,Wherein the advection memory control unit comprises:

(i) 상기 메모리 내에, 전체 노드들의 방향 i의 입자 분포 함수들 및 반대 방향 i'의 입자 분포 함수들을 각각 저장할 제1 및 제2 임시 저장 공간들을 포함하는 부분 어레이 구조 저장 공간을 마련하는 단계,(i) providing, in the memory, a partial array structure storage space including first and second temporary storage spaces for respectively storing particle distribution functions in direction i of all nodes and particle distribution functions in opposite direction i '

(ii) 상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 제1 이웃 노드의 방향 i에 상응하는 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 상기 제1 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계,(ii) a first particle distribution function stored in a storage location corresponding to a direction i of a first neighbor node facing the opposite direction i 'of the node of interest, with reference to the array structure storage space, Storing in a storage location of a node of interest in the temporary storage space,

(iii) 상기 어레이 구조 저장 공간을 참조하여, 상기 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드의 반대 방향 i'에 상응하는 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 상기 제2 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계,(iii) a second particle distribution function stored in a storage location corresponding to the opposite direction i 'of the second neighbor node facing the direction i of the node of interest, with reference to the array structure storage space, Storing at a storage location of a node of interest in the second temporary storage space,

(iv) 상기 어레이 구조 저장 공간 내의 모든 노드들에 대하여, 단계 (ii) 내지 단계 (iii)를 반복하는 단계,(iv) repeating steps (ii) to (iii) for all nodes in the array structure storage space,

(v) 상기 어레이 구조 저장 공간 내의 방향 i의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 상기 제1 임시 저장 공간의 어드레스 포인터와 맞바꿈하는 단계,(v) swapping a pointer of an address range in which the particle distribution functions of direction i in the array structure storage space are stored with an address pointer of the first temporary storage space,

(vi) 상기 어레이 구조 저장 공간 내의 반대 방향 i'의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 상기 제2 임시 저장 공간의 어드레스 포인터와 맞바꿈하는 단계 및(vi) swapping a pointer of the address range in which the particle distribution functions in the opposite direction i 'in the array structure storage space are stored with the address pointer of the second temporary storage space, and

(vii) 모든 방향 i 및 반대 방향 i'에 대하여, 단계 (i) 내지 단계 (vi)을 반복하는 단계를 수행하도록 동작할 수 있다.(vii) repeating steps (i) through (vi) for all directions i and opposite directions i '.

일 실시예에 따라, 상기 단계 (i) 내지 단계 (vi)에서 상기 제1 및 제2 임시 저장 공간들을 제공하기 위해 필요한 메모리 공간은 충돌 연산 단계 중에 연산 결과의 일시적인 저장을 위해 이용되는 메모리 공간을 활용하여 제공될 수 있다.According to one embodiment, the memory space required to provide the first and second temporary storage spaces in steps (i) through (vi) may include a memory space used for temporal storage of the operation result during the conflict operation step Can be provided.

일 실시예에 따라, 상기 단계 (i)에서 마련되는 상기 제1 및 제2 임시 저장 공간들은 직전에 수행된 단계 (v) 및 단계 (vi) 동안에 특정 방향 및 반대 방향에 관하여 상기 어레이 구조 저장 공간 내에 속하였던 어드레스 범위들에 상응할 수 있다.According to one embodiment, the first and second temporary storage spaces provided in step (i) are arranged in the array structure storage space < RTI ID = 0.0 >Lt; / RTI > may correspond to address ranges that have been in the < / RTI >

본 발명의 메모리 제어 알고리즘과 이를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 방법 및 장치에 따르면, 어레이 구조 외에 메모리 용량을 크게 늘리지 않으면서 효과적으로 이류 단계를 수행할 수 있다.According to the memory control algorithm of the present invention and the method and apparatus for the fluid numerical analysis based on the lattice Boltzmann technique using the memory control algorithm, it is possible to effectively perform the advection step without significantly increasing the memory capacity in addition to the array structure.

본 발명의 메모리 제어 알고리즘과 이를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 방법 및 장치에 따르면, 이류 단계에서 어레이 구조 내의 각 격자들의 입자 분포 함수들을 이웃 격자로 이동시키는 데에 필요한 메모리 대역폭을 낮출 수 있다.According to the memory control algorithm of the present invention and the method and apparatus for the fluid numerical analysis based on the Grid Boltzmann technique using the memory control algorithm of the present invention, it is possible to lower the memory bandwidth required to move the particle distribution functions of the respective gratings in the array structure to the neighboring grids in the advection step.

본 발명의 메모리 제어 알고리즘과 이를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 방법 및 장치에 따르면, 이류 단계에 필요한 시간을 감축시켜 동일한 총 연산 시간 동안에 더 긴 시뮬레이션을 수행할 수 있다.According to the memory control algorithm of the present invention and the method and apparatus for the fluid numerical analysis based on the lattice Boltzmann technique using the memory control algorithm, the time required for the advection step can be reduced, and a longer simulation can be performed during the same total computation time.

본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to those mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법을 예시한 순서도이다.
도 2는 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법의 이류 단계에서 어레이 구조 저장 공간의 갱신 방법을 예시한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법의 이류 단계에서, 특정 방향에 관하여 갱신될 어레이 구조 저장 공간 및 임시 저장 공간을 도식적으로 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법의 이류 단계에서, 특정 방향에 관하여 어레이 구조 저장 공간 내의 관심 대상 노드의 이웃 노드들로부터 임시 저장 공간의 관심 대상 노드로 복사하는 절차를 도식적으로 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법의 이류 단계에서, 특정 방향에 관하여 어레이 구조 저장 공간 내의 관심 대상 노드를 임시 저장 공간의 관심 대상 노드에 의해 갱신하는 절차를 도식적으로 예시한 도면이다.
도 6은 본 발명의 다른 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 장치를 예시한 블록도이다.
1 is a flow diagram illustrating a method of fluid numerical analysis based on a lattice Boltzmann technique in accordance with an embodiment of the present invention.
FIG. 2 is a flowchart illustrating a method of updating an array structure storage space in a advection step of a fluid-numerical method based on a lattice Boltzmann technique according to an embodiment of the present invention.
3 is a diagrammatic illustration of an array structure storage space and a temporary storage space to be updated with respect to a specific direction in the advection step of the lattice Boltzmann technique based fluid numerical analysis method according to an embodiment of the present invention.
FIG. 4 is a flow chart illustrating a method of copying from a neighboring node of a node of interest to a node of interest in a temporary storage space in an array structure storage space with respect to a specific direction in a advection step of a method of fluid numerical analysis according to an embodiment of the present invention; FIG. 2 is a diagram schematically illustrating a procedure for performing the above process.
FIG. 5 is a flow chart illustrating a procedure for updating a node of interest in an array structure storage space with respect to a specific direction by a node of interest in a temporary storage space, in the advection step of the method of fluid numerical analysis based on the lattice Boltzmann technique according to an embodiment of the present invention Fig.
6 is a block diagram illustrating a lattice Boltzmann technique based fluid numerical analysis apparatus in accordance with another embodiment of the present invention.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

본 발명의 명세서 전체에 걸쳐, 노드(node)는 격자 볼츠만 기법 상의 각종 연산이 일어나는 격자(lattice)의 각각을 의미하며, 따라서, 맥락 상 서로 다른 의미임이 명백한 경우를 제외하면, 실질적으로 격자와 노드는 동일한 의미로 사용될 수 있다.Throughout the description of the present invention, a node means each of the lattices in which various operations on the Grid Boltzmann technique take place, and thus, substantially the same as the lattice and node Can be used in the same sense.

본 발명의 명세서 전체에 걸쳐, 스트리밍(streaming) 단계와 이류 단계는, 맥락 상 서로 다른 의미임이 명백한 경우를 제외하면, 서로 혼용하여 사용될 수 있다.Throughout the specification of the present invention, the streaming and advection steps may be used interchangeably, unless the context clearly indicates otherwise.

도 1은 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법을 예시한 순서도이다.1 is a flow diagram illustrating a method of fluid numerical analysis based on a lattice Boltzmann technique in accordance with an embodiment of the present invention.

격자 볼츠만 기법 기반 유체 수치 해석 방법은 복수의 방향 별로 서로 연결된 노드들의 각각에 대하여, 각 방향마다 정의된 물리량, 예를 들어 유체의 밀도, 속도 또는 외력 등에 관하여 연산되는 입자 분포 함수들(pdf)을 다음 수학식 1과 같은 격자 볼츠만 방정식에 따라 연산하는 기법이다.The Grid Boltzmann technique-based fluid numerical analysis method is a method for calculating a particle distribution function (pdf) computed with respect to a physical quantity defined for each direction, for example, density, velocity or external force of each fluid, Is a technique of calculating according to the lattice Boltzmann equation as shown in the following equation (1).

Figure 112014060835562-pat00001
Figure 112014060835562-pat00001

여기서,

Figure 112014060835562-pat00002
는 격자 x 내에서 i번째 방향의 입자 분포 함수이고, ei는 i번째 방향의 마이크로스코픽 속도(microscopic velocities) 벡터이며, t는 시간, Ωi는 i 번째 방향의 충돌 연산자(collision operator)이다. 충돌 연산자는 입자의 충돌 시의 거동에 관하여 주어지는 항으로서, 예를 들어 BGK(Bhatnagar-Gross-Krook) 항으로 주어진다.here,
Figure 112014060835562-pat00002
It is a particle distribution function of the i-th direction in the grid x, e i is the microscopic rate of the i-th direction (microscopic velocities) vector, t is the time, Ω i is a collision operator (collision operator) of the i-th direction. The collision operator is a term given in terms of the behavior of a particle at the time of impact, for example given as BGK (Bhatnagar-Gross-Krook) term.

여기서, 시간은 이산적으로(discrete) 취급되므로, 시간이 t일 때에 격자 볼츠만 연산은 시간이 (t-1)였을 때의 연산 결과를 이용하여 수행되고, t일 때의 연산이 완료되면, 시간이 (t+1)가 되며, 시간이 t였을 때의 연산 결과를 이용하여 시간이 (t+1)일 때의 격자 볼츠만 연산이 수행되는 식으로, 시간의 증가에 따라 이전의 연산 결과를 이용하여 연산이 계속 반복되어야 한다. Since the time is treated discretely, the lattice Boltzmann operation is performed using the operation result when the time is (t-1), and when the operation at t is completed, the time (T + 1), and the lattice Boltzmann operation is performed when the time is (t + 1) by using the operation result when the time is t, and the previous operation result is used The operation must be repeated continuously.

이에 따라 수학식 1의 격자 볼츠만 방정식은 충돌 연산 단계의 수학식 2와 이류 단계의 수학식 3과 같이 분리될 수 있다.Accordingly, the lattice Boltzmann equation of Equation (1) can be separated into Equation (2) of the collision calculation step and Equation (3) of the advection step.

Figure 112014060835562-pat00003
Figure 112014060835562-pat00003

Figure 112014060835562-pat00004
Figure 112014060835562-pat00004

여기서,

Figure 112014060835562-pat00005
는 관심 대상 노드의 충돌 연산 단계의 결과를 일시적으로 저장하는 변수이고,
Figure 112014060835562-pat00006
를 이웃 노드들로 스트리밍한 결과가
Figure 112014060835562-pat00007
이다.here,
Figure 112014060835562-pat00005
Is a variable for temporarily storing the result of the collision calculation step of the node of interest,
Figure 112014060835562-pat00006
Is streamed to neighboring nodes.
Figure 112014060835562-pat00007
to be.

앞서 설명한 나이브 메모리 제어 알고리즘에서는

Figure 112014060835562-pat00008
를 관심 대상 노드 x에서 각각 ei만큼 떨어진 이웃 노드들의 각 방향으로 스트리밍하여
Figure 112014060835562-pat00009
를 얻기 위해
Figure 112014060835562-pat00010
의 어레이 구조와
Figure 112014060835562-pat00011
의 어레이 구조를 별도로 두고
Figure 112014060835562-pat00012
의 어레이 구조를
Figure 112014060835562-pat00013
의 어레이 구조에 그대로 복사함으로써,
Figure 112014060835562-pat00014
의 어레이 구조가 생성된다.In the above-described Naive memory control algorithm
Figure 112014060835562-pat00008
Is streamed in each direction of neighbor nodes separated by e i from the node of interest x
Figure 112014060835562-pat00009
To get
Figure 112014060835562-pat00010
And
Figure 112014060835562-pat00011
The array structure of the
Figure 112014060835562-pat00012
Array structure of
Figure 112014060835562-pat00013
Lt; RTI ID = 0.0 > array structure,
Figure 112014060835562-pat00014
Lt; / RTI >

또한 스왑 메모리 제어 알고리즘에서는

Figure 112014060835562-pat00015
의 어레이 구조 내에서 관심 대상 노드 내의 입자 분포 함수 데이터들의 위치를 변경한 다음, 각 방향 별로 관심 대상 노드와 이웃 노드 사이에서 입자 분포 함수 데이터들을 맞바꾸는 식으로 메모리 사용을 최소화하였고, 최종적으로 맞바꾸기가 완료되면
Figure 112014060835562-pat00016
의 어레이 구조가 얻어진다.In addition, the swap memory control algorithm
Figure 112014060835562-pat00015
The memory usage is minimized by changing the location of the particle distribution function data in the target node in the array structure of the target node and then changing the particle distribution function data between the target node and the neighboring node in each direction, Is completed
Figure 112014060835562-pat00016
Is obtained.

이에 비해 본 발명의 격자 볼츠만 기법 기반 유체 수치 해석 방법에서는, 충돌 연산 단계인 단계(S11)에서, 복수의 방향들 각각에 의해 서로 연결된 노드들의 각각에 대하여, 각 방향마다 입자 분포 함수들을 격자 볼츠만 방정식에 기초하여 연산한다.On the other hand, in the fluid numerical analysis method based on the lattice Boltzmann technique of the present invention, in step S11 of the collision calculation step, for each of the nodes connected to each other by the plurality of directions, .

이어서, 충돌 연산의 결과에 따라 방향별로 노드들의 입자 분포 함수들이 저장된 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키기 위한 이류 단계인 단계(S12)에서는, 관심 대상 노드의 특정 방향 i에 관하여, 반대 방향 i'에 대향한 이웃 노드로부터 특정 방향 i의 입자 분포 함수가 복사되어 저장되는 임시 저장 공간을 가리키는 포인터(pointer)로써 특정 방향 i의 관심 대상 노드의 입자 분포 함수가 저장된 어드레스 범위의 포인터를 대체함으로써, 각 방향들에 관하여 노드들의 입자 분포 함수들을 이류시킨다.Next, in step S12, which is an advection step for spreading the particle distribution functions of the respective nodes to the neighbor nodes in the array structure storage space storing the particle distribution functions of the nodes according to the result of the collision calculation, With respect to a specific direction i, a pointer to a temporary storage space in which a particle distribution function in a specific direction i is copied and stored from a neighboring node opposed to the opposite direction i ' By replacing the pointer of the stored address range, we node the particle distribution functions of the nodes with respect to each direction.

여기서 반대 방향 i'는 방향 i와 하나의 직선을 이루면서 대향하는 방향을 가리킨다.Herein, the opposite direction i 'indicates the opposite direction forming a straight line with the direction i.

좀더 구체적으로, 방향 i에 관하여 전체 노드들의 입자 분포 함수들을 저장할 임시 저장 공간을 생성하는 동작, 관심 대상 노드의 반대 방향 i'에 대향한 이웃 노드의 방향 i의 저장 위치에 저장된 입자 분포 함수를 방향 i에 관한 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장함으로써 방향 i에 관한 임시 저장 공간에 방향 i에 관한 전체 노드들의 입자 분포 함수들을 이류된 저장 위치들에 저장하는 동작 및 방향 i에 관한 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 임시 저장 공간의 입자 분포 함수들이 저장된 어드레스 범위의 포인터로써 대체하는 동작을 모든 방향들의 각각에 대해 반복할 수 있다.Generating a temporary storage space for storing the particle distribution functions of all the nodes with respect to the direction i; generating a particle distribution function stored in the storage location of the direction i of the neighboring node opposite to i ' i to the temporary storing space related to the direction i by storing the particle distribution functions of all the nodes in the direction i in the storage locations of the interested nodes in the temporary storing space related to the direction i, It is possible to repeat the operation of replacing the pointer of the address range in which the particle distribution functions of the nodes are stored with a pointer of the address range in which the particle distribution functions of the temporary storage space relating to the direction i are stored.

통상적으로 스트리밍 단계는 관심 대상 노드로부터 각 방향별 이웃 노드들로 입자 분포 함수들이 전파되는 것으로 직관적으로 이해되는데, 본 발명은 이 과정을 역발상으로 관찰하였다는 점이 특징이다.Usually, the streaming step is intuitively understood that the particle distribution functions are propagated from the node of interest to each of the neighboring nodes in each direction. The present invention is characterized in that this process is observed in reverse.

다시 말해, 본 발명에서 스트리밍 단계에서 각각의 노드가 입자 분포 함수들을 각 이웃 노드에 하나씩 전파시키는 것은 결국 각각의 노드가 주변의 이웃 노드들로부터 입자 분포 함수들을 하나씩 받아 갱신된다는 것과 마찬가지임을 알 수 있다.In other words, in the present invention, it is understood that each node propagates the particle distribution functions to each neighbor node one by one in the streaming step, as a result that each node is updated by receiving one of the particle distribution functions from neighboring neighboring nodes .

노드마다 방향은 예를 들어 2차원 유체 수치 해석 시에는 9개(D2Q9 모델), 3차원 유체 수치 해석 시에는 15개(D3Q15 모델), 19개(D3Q19 모델) 또는 27개(D3Q27 모델)가 있을 수 있다. 다만, 이들 방향 개수에는 노드의 원점에 상응하는 방향 0이 포함되어 있는데, 이 방향 0은 스트리밍 단계에서 이웃 노드로 이동하거나 하지 않는다. 따라서, 스트리밍 단계에서 실제로 전파되어야 하는 방향들의 개수는 2차원 유체 수치 해석 시에는 8개(D2Q9 모델), 3차원 유체 수치 해석 시에는 14개(D3Q15 모델), 18개(D3Q19 모델) 또는 26개(D3Q27 모델)일 수 있다.For example, there are 9 directions (D2Q9 model) for two-dimensional fluid numerical analysis, 15 (D3Q15 model), 19 (D3Q19 model), or 27 (D3Q27 model) . However, these direction numbers include direction 0 corresponding to the origin of the node, and this direction 0 does not move to the neighboring node in the streaming step. Therefore, the number of directions that should actually propagate in the streaming phase is 8 (D2Q9 model) for 2D fluid numerical analysis, 14 (D3Q15 model), 18 (D3Q19 model) or 26 (D3Q27 model).

한편, 실제로 입자 분포 함수 데이터들은 노드 별로 저장되기 보다는, 방향 별로 집단적으로 저장된다. 다시 말해, 방향 i에 관한 입자 분포 함수 데이터들은 노드들의 순서대로 특정 어드레스 범위 내에 연속적인 어드레스를 가지고 메모리에 저장된다.On the other hand, actually, the particle distribution function data are collectively stored for each direction rather than for each node. In other words, the particle distribution function data for direction i is stored in memory with consecutive addresses within a specific address range in the order of the nodes.

이러한 어레이 구조에서, 방향 i의 입자 분포 함수 데이터들이 연속적으로 저장되는 어드레스 범위는 포인터에 의해 특정될 수 있다.In this array structure, the address range in which the particle distribution data of direction i is continuously stored can be specified by a pointer.

따라서, 본 발명은 방향 i의 입자 분포 함수 데이터들을 저장할 빈 임시 저장 공간을 생성하고, 스트리밍 시에 이웃 노드로부터 관심 대상 노드에 전파될 입자 분포 함수를 임시 저장 공간의 관심 대상 노드의 저장 위치에 저장한다.Therefore, the present invention creates an empty temporary storage space for storing the particle distribution function data of direction i, and stores the particle distribution function to be propagated from the neighboring node to the interested node at the time of streaming to the storage location of the interested node of the temporary storage space do.

임시 저장 공간의 생성과 입자 분포 함수 데이터들의 저장은 방향 i에 상응하는 입자 분포 함수 데이터들의 개수만큼의 메모리 공간을 요구하지만, 본 발명은 이러한 메모리 공간의 추가는 최소화될 수 있다.The creation of the temporary storage space and the storage of the particle distribution function data require as much memory space as the number of particle distribution function data corresponding to direction i, but the present invention can minimize the addition of such memory space.

구체적으로, 이러한 스트리밍 단계의 임시 저장 공간을 제공하기 위해 필요한 메모리 공간은 충돌 연산 단계에서 이용되는 연산 결과 저장을 위한 메모리 공간을 활용하여 충족시킬 수 있다. 연산 결과 저장 공간은 충돌 연산 단계에 각 방향마다 연산을 수행한 결과를 저장하기 위해 필수적이지만 스트리밍 단계에서는 아무런 역할을 하지 않고 비어 있기 때문에, 이 연산 결과 저장 공간을 이용하여 스트리밍 단계에 임시 저장 공간으로 활용할 수 있고, 실질적으로 메모리가 더 필요하게 되지는 않는다.Specifically, the memory space necessary for providing the temporary storage space of the streaming step can be satisfied by utilizing the memory space for storing the operation result used in the conflict operation step. Since the operation result storage space is necessary for storing the result of performing the operation in each direction in the collision operation step, it is empty without performing any role in the streaming step. Therefore, the operation result storage space is used as a temporary storage space in the streaming step And there is no need for substantially more memory.

이때, 방향마다 이류 단계가 반복적으로 수행됨에 따라, 임시 저장 공간은 직전에 이류된 특정 방향 및 반대 방향에 관하여 어레이 구조 저장 공간 내에 속하였던 어드레스 범위들에 상응하여 제공될 수 있다.At this time, as the advection step is repeatedly performed for each direction, the temporary storage space may be provided corresponding to the address ranges that belonged to the array structure storage space with respect to the specific direction and the opposite direction that were immediately preceded.

또한 방향 i에 관한 임시 저장 공간의 어드레스 범위 포인터가 방향 i에 관하여 연산된 입자 분포 함수 데이터들이 저장되는 어드레스 범위 포인터와 서로 맞바꿈되기 때문에, 스트리밍 단계가 완료된 이후에 새로 충돌 연산 단계가 시작되었을 때에 이용될 연산 결과 임시 저장 공간은 충돌 연산 단계마다 다른 어드레스 범위를 가질 수 있다는 점에 유의할 필요는 있다.Also, since the address range pointer of the temporary storage space relating to the direction i is interchanged with the address range pointer in which the particle distribution function data calculated with respect to the direction i is stored, when a new conflict operation step is started after the streaming step is completed It should be noted that the resultant arithmetic result temporary storage space may have a different address range for each collision calculation step.

실시예에 따라, 적어도 두 방향들 i 및 j에 관하여 전체 노드들의 입자 분포 함수들을 각각 저장할 적어도 두 벌의 임시 저장 공간들을 생성하는 동작, 관심 대상 노드의 방향들 i 및 j의 반대 방향들 i' 및 j'에 각각 대향한 이웃 노드들의 방향들 i 및 j의 저장 위치들에 각각 저장된 입자 분포 함수들을 방향들 i 및 j에 관한 임시 저장 공간들 내의 관심 대상 노드의 저장 위치들에 각각 저장하는 동작, 방향들 i 및 j에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위들의 포인터들을 방향들 i 및 j에 관한 임시 저장 공간들 내에 입자 분포 함수들이 저장되는 어드레스 범위들의 포인터들로써 대체하는 동작을 적어도 두 개의 방향들로 구성된 방향 그룹들 각각에 대해 반복한다.Generating at least two temporary storage spaces for storing respective particle distribution functions of all nodes with respect to at least two directions i and j according to an embodiment, And storing the particle distribution functions respectively stored in the storage locations of directions i and j of neighboring nodes respectively opposed to j and j in the storage locations of the interested node in temporary storage spaces related to directions i and j, respectively , Replacing pointers of address ranges in which the particle distribution functions of all nodes with respect to directions i and j are stored with pointers of address ranges in which particle distribution functions are stored in temporary storage spaces with respect to directions i and j, Lt; RTI ID = 0.0 > direction. ≪ / RTI >

특히 방향 j는 방향 i의 반대 방향일 수 있다.In particular, direction j may be in the opposite direction of direction i.

이 경우에, 구체적으로, 방향 i 및 반대 방향 i'에 관하여 관심 대상 노드의 입자 분포 함수들을 각각 저장할 수 있는 제1 및 제2 임시 저장 공간들을 생성하고, 관심 대상 노드의 방향 i의 반대 방향 i'에 대향한 제1 이웃 노드에서 방향 i의 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 제1 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하며, 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드에서 반대 방향 i'의 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 제2 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장할 수 있다.In this case, specifically, first and second temporary storage spaces, each capable of storing the particle distribution functions of the interested node with respect to the direction i and the opposite direction i ', are generated, and the direction i In the storage location of the interested node in the first temporary storage space for direction i, and stores the first particle distribution function stored in the storage location of direction i in the opposite direction The second particle distribution function stored in the storage location of the opposite direction i 'in one second neighbor node may be stored in the storage location of the node of interest in the second temporary storage space with respect to the opposite direction i'.

도 2는 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법의 이류 단계에서 어레이 구조 저장 공간의 갱신 방법을 예시한 순서도이다.FIG. 2 is a flowchart illustrating a method of updating an array structure storage space in a advection step of a fluid-numerical method based on a lattice Boltzmann technique according to an embodiment of the present invention.

도 2를 참조하면, 충돌 연산의 결과에 따라 방향별로 노드들의 입자 분포 함수들이 저장된 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키기 위한 이류 단계, 즉 스트리밍 단계에서, 방향 i와 반대 방향 i'로 구성되는 방향쌍 별로, 어레이 구조 저장 공간으로부터 임시 저장 공간으로 입자 분포 함수들이 복사되고, 어레이 구조 저장 공간과 임시 저장 공간 사이의 포인터 교체를 통해 입자 분포 함수들의 이류가 수행되는 절차가 예시된다.Referring to FIG. 2, in the advection step, that is, the streaming step for spreading the particle distribution functions of the respective nodes to neighboring nodes in the array structure storage space in which the particle distribution functions of the nodes are stored according to the result of the collision calculation, the particle distribution functions are copied from the array structure storage space to the temporary storage space for each direction pair consisting of i and the opposite direction i, and the advection of the particle distribution functions is performed through pointer replacement between the array structure storage space and the temporary storage space .

단계(S21)에서, 전체 노드들의 방향 i의 입자 분포 함수들 및 반대 방향 i'의 입자 분포 함수들을 각각 저장할 제1 및 제2 임시 저장 공간들을 포함하는 부분 어레이 구조 저장 공간을 마련한다.In step S21, a partial array structure storage space is provided that includes first and second temporary storage spaces, respectively, for storing the particle distribution functions in direction i of all the nodes and the particle distribution functions in the opposite direction i '.

실시예에 따라, 부분 어레이 구조 저장 공간은 충돌 연산 단계에서 연산 결과의 일시적 저장을 위해 이용되는 메모리 공간을 활용할 수 있다.According to an embodiment, the partial array structure storage space can utilize the memory space used for temporal storage of the operation result in the conflict operation step.

단계(S22)에서, 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 제1 이웃 노드의 방향 i에 상응하는 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 제1 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장한다.In step S22, referring to the array structure storage space, a first particle distribution function stored in a storage position corresponding to the direction i of the first neighboring node opposite to the direction i ' 1 < / RTI > in the storage location of the node of interest within the temporary storage space.

단계(S23)에서, 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드의 반대 방향 i'에 상응하는 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 제2 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장한다.In step S23, referring to the array structure storage space, a second particle distribution function stored in a storage position corresponding to the opposite direction i 'of the second neighbor node facing the direction i of the interested node is set in the opposite direction i' In the storage location of the node of interest within the second temporary storage space.

단계(S24)에서, 어레이 구조 저장 공간 내의 모든 노드들에 대하여, 상술하는 단계들(S22 및 S23)을 반복한다.In step S24, the above-described steps S22 and S23 are repeated for all nodes in the array structure storage space.

단계(S25)에서, 어레이 구조 저장 공간 내의 방향 i의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 제1 임시 저장 공간의 어드레스 포인터와 맞바꿈한다.In step S25, the pointer of the address range in which the particle distribution functions of direction i in the array structure storage space is stored is swapped with the address pointer of the first temporary storage space.

단계(S26)에서, 어레이 구조 저장 공간 내의 반대 방향 i'의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 제2 임시 저장 공간의 어드레스 포인터와 맞바꿈한다.In step S26, the pointer of the address range in which the particle distribution functions in the opposite direction i 'in the array structure storage space are stored is swapped with the address pointer of the second temporary storage space.

이때, 상술한 단계들(S25 및 S26)에서 제1 및 제2 임시 저장 공간들의 어드레스 포인터들과 어레이 구조 저장 공간의 어드레스 포인터들이 서로 맞바꿈되면, 단계(S22) 및 단계(S24)에서 제1 및 제2 임시 저장 공간들이었던 어드레스들이 이제는 방향 i 및 반대 방향 i'에 관하여 어레이 구조 저장 공간에 속하게 되고, 반면에 단계(S22) 및 단계(S24)까지 방향 i 및 반대 방향 i'에 관하여 어레이 구조 저장 공간 내에 속했던 어드레스들은 이제 다음 차례의 이류 연산을 위한 제1 및 제2 임시 저장 공간들로써 부분 어레이 구조 저장 공간에 속하게 된다.At this time, if the address pointers of the first and second temporary storage spaces and the address pointers of the array structure storage space are interchanged in the above-described steps S25 and S26, the process proceeds to step S22 and step S24, And the addresses that were the second temporary storage spaces now belong to the array structure storage space with respect to direction i and the opposite direction i ', while steps S22 and S24 are repeated until the array < RTI ID = 0.0 > The addresses that were in the structure storage space now belong to the partial array structure storage space as the first and second temporary storage spaces for the next sequential arithmetic operation.

단계(S27)에서, 모든 방향 i 및 반대 방향 i'에 대하여, 상술하는 단계들(S22부터 S26)을 반복한다.In step S27, the above-described steps (S22 to S26) are repeated for all directions i and i '.

도 2의 이해를 돕기 위한 의사 코드는 다음과 같다.The pseudo code for helping understanding of FIG. 2 is as follows.

Figure 112014060835562-pat00017
Figure 112014060835562-pat00017

여기서,

Figure 112014060835562-pat00018
는 방향 i의 입자 분포 함수들을 저장하기 위한 임시 저장 공간이고 (1)에서
Figure 112014060835562-pat00019
는 각각의 노드
Figure 112014060835562-pat00020
에 대해
Figure 112014060835562-pat00021
에 해당하는 이웃 노드의 연산 결과
Figure 112014060835562-pat00022
Figure 112014060835562-pat00023
에 저장함을 의미한다.here,
Figure 112014060835562-pat00018
Is the temporary storage space for storing the particle distribution functions of direction i and (1)
Figure 112014060835562-pat00019
Lt; / RTI >
Figure 112014060835562-pat00020
About
Figure 112014060835562-pat00021
The operation result of the neighboring node corresponding to
Figure 112014060835562-pat00022
To
Figure 112014060835562-pat00023
.

마찬가지로

Figure 112014060835562-pat00024
는 반대 방향 i'의 입자 분포 함수들을 저장하기 위한 임시 저장 공간이고, (1)에서
Figure 112014060835562-pat00025
는 각각의 노드
Figure 112014060835562-pat00026
에 대해
Figure 112014060835562-pat00027
에 해당하는 이웃 노드의 연산 결과
Figure 112014060835562-pat00028
Figure 112014060835562-pat00029
에 저장함을 의미한다.Likewise
Figure 112014060835562-pat00024
Is a temporary storage space for storing the particle distribution functions of i 'in the opposite direction, and (1)
Figure 112014060835562-pat00025
Lt; / RTI >
Figure 112014060835562-pat00026
About
Figure 112014060835562-pat00027
The operation result of the neighboring node corresponding to
Figure 112014060835562-pat00028
To
Figure 112014060835562-pat00029
.

모든 노드들

Figure 112014060835562-pat00030
에 대해 (1)에 수행되면, (3)에서, 임시 포인터
Figure 112014060835562-pat00031
를 이용하여
Figure 112014060835562-pat00032
의 포인터
Figure 112014060835562-pat00033
과 방향 i의 직전 연산된 입자 분포 함수들이 저장된 어드레스 범위의 포인터
Figure 112014060835562-pat00034
를 서로 교체하고 또한
Figure 112014060835562-pat00035
의 포인터
Figure 112014060835562-pat00036
과 반대 방향 i'의 직전 연산된 입자 분포 함수들이 저장된 어드레스 범위의 포인터
Figure 112014060835562-pat00037
를 서로 교체할 수 있다.All nodes
Figure 112014060835562-pat00030
(3), the temporary pointer < RTI ID = 0.0 >
Figure 112014060835562-pat00031
Using
Figure 112014060835562-pat00032
Pointer
Figure 112014060835562-pat00033
And the pointers of the address ranges stored in the immediately preceding computed particle distribution functions of direction i
Figure 112014060835562-pat00034
Lt; RTI ID = 0.0 >
Figure 112014060835562-pat00035
Pointer
Figure 112014060835562-pat00036
Lt; RTI ID = 0.0 > i < / RTI >
Figure 112014060835562-pat00037
Can be exchanged with each other.

(4)에서는 방향 i 및 반대 방향 i'에 대해 (1)-(3)이 완료되었으므로, 나머지 방향쌍들의 각각에 대해 (1)-(3)이 반복된다.(1) - (3) have been completed for direction i and opposite direction i 'in (4), (1) - (3) are repeated for each of the remaining direction pairs.

도 3은 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법의 이류 단계에서, 특정 방향에 관하여 갱신될 어레이 구조 저장 공간 및 부분 어레이 구조 저장 공간을 도식적으로 예시한 도면이다.3 is a diagrammatic illustration of an array structure storage space and a partial array structure storage space to be updated with respect to a specific direction in the advection step of the lattice Boltzmann technique based fluid numerical analysis method according to an embodiment of the present invention.

도 3을 참조하면, D2Q9 모델을 이용하여 격자 볼츠만 기법 기반 유체 수치 해석 방법을 구현할 경우에, 어레이 구조 저장 공간(31) 내에 시간 t에서 연산된 입자 분포 함수들이, 각각의 노드 내에서, 방향별 저장 위치마다 저장되어 있는 모습이 도식적으로 예시되어 있다.Referring to FIG. 3, when a grid-Boltzmann technique-based fluid numerical analysis method is implemented using the D2Q9 model, the particle distribution functions calculated at time t in the array structure storage space 31 are stored in each node, The stored state is illustrated schematically for each storage location.

여기서, 입자 분포 함수는 가는 화살표로 표시되고, 노드는 3x3으로 배열된 정사각형들의 각각이며, 방향별 저장 위치는 각각 속이 빈 파선 화살표로 표시된다. 속이 빈 파선 화살표 내에 가는 파선 화살표는 각 노드에서 방향별 저장 위치마다 아직 이류되기 전의 입자 분포 함수가 저장되어 있는 모습을 예시한다.Here, the particle distribution function is represented by a thin arrow, and the nodes are each of squares arranged in 3x3, and storage positions for directions are each indicated by hollow dashed arrows. The dashed arrows in the dashed dashed arrows illustrate how the particle distribution functions are stored before each advection is stored for each directional storage location at each node.

이와 함께, 수평의 두 방향들 즉 우에서 좌로 향하는 방향 i의 입자 분포 함수들 및 좌에서 우로 향하는 반대 방향 i'의 입자 분포 함수들을 저장할 부분적인 어레이 구조로 된 부분 어레이 구조 저장 공간(32)이 또한 예시되어 있다.At the same time, the partial array structure storage space 32 of the partial array structure for storing the particle distribution functions in the horizontal two directions, i.e., the direction i from the right to the left, and the particle distribution functions in the left-to- It is also illustrated.

부분 어레이 구조 저장 공간(32)은 실제로 메모리 어드레스의 관점에서 보면 제1 임시 저장 공간(321)과 제2 임시 저장 공간(322)으로 구성될 수 있는데, 제1 임시 저장 공간(321)은 방향 i에 관하여 노드들의 입자 분포 함수들이 실제로 저장되는 메모리 어드레스 범위이고, 제2 임시 저장 공간(322)은 반대 방향 i'에 관하여 노드들의 입자 분포 함수들이 실제로 저장되는 메모리 어드레스 범위이다.The partial array structure storage space 32 may be constituted by a first temporary storage space 321 and a second temporary storage space 322 in terms of a memory address actually, And the second temporary storage space 322 is a memory address range in which the particle distribution functions of the nodes are actually stored with respect to the opposite direction i '.

이로써 각 관심 대상 노드마다 이웃 노드로부터 확산될 입자 분포 함수들을 임시 저장 공간에 복사할 준비가 되었다.This makes it possible to copy the particle distribution functions to be spread from the neighbor nodes to the temporary storage space for each node of interest.

이어서 도 4를 참조하면, 도 4는 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법의 이류 단계에서, 특정 방향에 관하여 어레이 구조 저장 공간 내의 관심 대상 노드의 이웃 노드들로부터 임시 저장 공간의 관심 대상 노드로 복사하는 절차를 도식적으로 예시한 도면이다.Referring now to FIG. 4, FIG. 4 is a flow chart illustrating a temporary storage of neighboring nodes of a node of interest in an array structure storage space in a particular direction, in a advection step of a method of fluid numerical analysis in accordance with an embodiment of the present invention. FIG. 3 is a diagram schematically illustrating a procedure of copying to a node of interest in space. FIG.

관심 대상 노드의 방향 i 및 반대 방향 i'에서 입자 분포 함수들의 전파를 위해서는, 관심 대상 노드를 중심으로 반대 방향 i' 및 방향 i에 각각 대향하는 제1 이웃 노드의 방향 i 및 제2 이웃 노드의 반대 방향 i'에 각각 상응하는 입자 분포 함수들이 각각 관심 대상 노드의 방향 i 및 반대 방향 i'의 각 저장 위치들로 이동되어야 한다.In order to propagate the particle distribution functions in the direction i and the opposite direction i 'of the interested node, the direction i of the first neighboring node and the direction i of the second neighboring node facing the opposite direction i' The particle distribution functions corresponding respectively to the opposite direction i 'should be moved to the respective storage locations of the direction i and the opposite direction i' of the interested node, respectively.

이를 위해, 도 4에서, 중앙의 관심 대상 노드(40)를 중심으로 반대 방향 i' 및 방향 i에 각각 대향하는 제1 이웃 노드(41)의 방향 i의 저장 위치(411) 및 제2 이웃 노드(42)의 반대 방향 i'의 저장 위치(421)에 각각 저장된 입자 분포 함수들이 각각 관심 대상 노드(40)의 방향 i 및 반대 방향 i'의 저장 위치들(401, 402)로 이동되어야 한다.4, the storage location 411 of the direction i of the first neighboring node 41 facing the opposite direction i 'and direction i, respectively, about the central node of interest 40, The particle distribution functions respectively stored in the storage position 421 in the opposite direction i 'of the target node 42 should be moved to the storage locations 401 and 402 in the direction i and the opposite direction i' of the target node 40, respectively.

이에 따라, 중앙의 관심 대상 노드(40)의 방향 i의 저장 위치(401)의 갱신을 위해, 관심 대상 노드(40)의 반대 방향 i'에 대향하는 제1 이웃 노드(41)의 방향 i의 저장 위치(411)에 저장된 입자 분포 함수가 부분 어레이 구조 저장 공간(32) 내에서 관심 대상 노드(40)의 노드(33)의 방향 i에 관한 저장 위치(331)에 복사된다.Thus, for updating the storage location 401 of direction i of the central node of interest 40, the direction i of the first neighboring node 41 facing the opposite direction i 'of the node of interest 40 The particle distribution function stored at the storage location 411 is copied to the storage location 331 for the direction i of the node 33 of the interested node 40 in the partial array structure storage space 32. [

부분 어레이 구조 저장 공간(32) 내의 노드(33)의 방향 i에 관한 저장 위치(331)는 실제로는 제1 임시 저장 공간(321) 중에 마련되어 있다.The storage position 331 relating to the direction i of the node 33 in the partial array structure storage space 32 is actually provided in the first temporary storage space 321. [

또한 중앙의 관심 대상 노드(40)의 반대 방향 i'의 저장 위치(402)의 갱신을 위해, 관심 대상 노드(40)의 방향 i에 대향하는 제2 이웃 노드(42)의 반대 방향 i'의 저장 위치(421)에 저장된 입자 분포 함수가 부분 어레이 구조 저장 공간(32) 내에서 관심 대상 노드(40)에 상응하는 노드(33)의 반대 방향 i'의 저장 위치(332)에 복사된다.Also for the update of the storage location 402 of the opposite direction i 'of the central node 40 of interest, the direction i of the second neighboring node 42, opposite to the direction i of the node 40 of interest, The particle distribution function stored in the storage location 421 is copied to the storage location 332 in the opposite direction i 'of the node 33 corresponding to the interested node 40 in the partial array structure storage space 32. [

부분 어레이 구조 저장 공간(32) 내의 노드(33)의 반대 방향 i'의 저장 위치(332)는 실제로는 제2 임시 저장 공간(322) 중에 마련되어 있다.The storage location 332 of the reverse direction i 'of the node 33 in the partial array structure storage space 32 is actually provided in the second temporary storage space 322. [

이렇게 입자 분포 함수의 전파를 의미하는 복사가 완료된 방향들 i 및 i'의 저장 위치들은 비어 있는 실선 화살표로 표시되고, 복사된 입자 분포 함수는 가는 실선 화살표로 표시된다.The storage positions of the radiated i and i ', which means the propagation of the particle distribution function, are represented by hollow solid arrows, and the copied particle distribution function is indicated by a thin solid line arrow.

이러한 동작을 나머지 모든 노드에서 반복하면, 어레이 구조 저장 공간(31) 내의 모든 노드들에 대해, 각 노드의 이웃 노드들로부터 수평의 두 방향들 i 및 i'의 저장 위치들에 저장된 입자 분포 함수들이 각각 부분 어레이 구조 저장 공간(32) 내의 제1 및 제2 임시 저장 공간들(321, 322)에 각각 복사된다.Repeating this operation at all the remaining nodes results in the generation of the particle distribution functions stored in the storage locations of two horizontal directions i and i 'from the neighbor nodes of each node for all the nodes in the array structure storage space 31 Are respectively copied to the first and second temporary storage spaces 321 and 322 in the partial array structure storage space 32, respectively.

이어서 도 5를 참조하면 도 5는 본 발명의 일 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 방법의 이류 단계에서, 특정 방향에 관하여 어레이 구조 저장 공간 내의 관심 대상 노드를 임시 저장 공간의 관심 대상 노드에 의해 갱신하는 절차를 도식적으로 예시한 도면이다.Referring now to FIG. 5, FIG. 5 is a flow chart of a method of analyzing fluid numerically based on a grid Boltzmann technique in accordance with an embodiment of the present invention. Referring to FIG. 5, Fig. 2 is a diagram schematically illustrating a procedure for updating by a user.

직전의 상태인 도 4의 부분 어레이 구조 저장 공간(32)은 방향 i와 반대 방향 i'에 관하여 전파가 완료된 입자 분포 함수들을 저장하고 있었는데, 부분 어레이 구조 저장 공간(32)의 컨텐츠를 도 3의 어레이 구조 저장 공간(31)의 해당 방향 i 및 반대 방향 i'에 관하여 다시 복사하여 덮어쓰는 대신에, 본 발명은 간단히 그러한 입자 분포 함수들이 저장된 메모리 어드레스 범위의 포인터들만 서로 교체함으로써 동일한 효과를 달성할 수 있다.The partial array structure storage space 32 of FIG. 4, which is the immediately preceding state, stores particle distribution functions in which propagation is completed with respect to the direction i and the direction i 'opposite to the direction i. The contents of the partial array structure storage space 32 are shown in FIG. Rather than copying and overwriting again with respect to the corresponding direction i and the opposite direction i 'of the array structure storage space 31, the present invention achieves the same effect simply by replacing only those pointers in the memory address range in which such particle distribution functions are stored .

도 4에서는 속이 빈 실선 화살표로 표시되던 부분 어레이 구조 저장 공간(32) 내의 각 노드들의 방향 i 및 반대 방향 i'에 상응하는 저장 위치들은 도 5에서는 속이 빈 파선 화살표로 표시되고, 반면에 도 3에서 속이 빈 실선 화살표로 표시되던 어레이 구조 저장 공간(31) 내의 각 노드들의 방향 i 및 반대 방향 i'에 상응하는 저장 위치들은 도 5에서는 속이 빈 실선 화살표로 표시된다.In FIG. 4, the storage locations corresponding to the direction i and the opposite direction i 'of each node in the partial array structure storage space 32 indicated by hollow hollow arrows are indicated by hollow dashed arrows in FIG. 5, The storage locations corresponding to the direction i and the opposite direction i 'of each node in the array structure storage space 31 indicated by hollow hollow arrows in FIG. 5 are indicated by hollow hollow arrows in FIG.

이는 각 노드에서 수평 방향의 입자 분포 함수들은 노드 사이에 전파된 후의 입자 분포 함수들로 갱신되었음을 의미한다.This implies that the horizontal particle distribution functions at each node are updated with the post-propagation particle distribution functions.

나머지 방향들에 관하여는, 각 노드들의 저장 위치들은 여전히 속이 빈 파선 화살표로 표시되어 있는데, 노드 사이에 전파되기 전의 입자 분포 함수들임을 의미한다.As for the remaining directions, the storage locations of each node are still represented by hollow dashed arrows, which means they are particle distribution functions before propagating between nodes.

도 6은 본 발명의 다른 실시예에 따른 격자 볼츠만 기법 기반 유체 수치 해석 장치를 예시한 블록도이다.6 is a block diagram illustrating a lattice Boltzmann technique based fluid numerical analysis apparatus in accordance with another embodiment of the present invention.

도 6을 참조하면, 본 발명의 격자 볼츠만 기법 기반 유체 수치 해석 장치(60)는 충돌 연산부(61), 이류 메모리 제어부(62) 및 메모리(63)를 포함할 수 있다.Referring to FIG. 6, the lattice Boltzmann technique-based fluid numerical analysis apparatus 60 of the present invention may include an impact computing unit 61, an advection memory control unit 62, and a memory 63.

충돌 연산부(61)는 복수의 방향 별로 서로 연결된 노드들의 각각에 대하여, 각 방향마다 입자 분포 함수들을 격자 볼츠만 방정식에 기초하여 연산한다.The collision computing unit 61 computes the particle distribution functions for each of the nodes connected to each other in a plurality of directions on the basis of the lattice Boltzmann equation.

입자 분포 함수들의 연산 결과는 메모리(63)에 소정의 어레이 구조를 가지고 저장된다. 메모리(63)는 방향들 및 노드들에 의해 행과 열이 정의되고 또한 방향별로 모든 노드들의 입자 분포 함수들을 저장하는 어레이 구조 저장 공간(631) 및 적어도 하나의 특정 방향에 관하여 모든 노드들의 입자 분포 함수들을 적어도 하나의 임시 저장 공간에 저장하기 위한 부분 어레이 구조 저장 공간(632)을 제공한다.The calculation results of the particle distribution functions are stored in the memory 63 with a predetermined array structure. The memory 63 includes an array structure storage space 631 in which rows and columns are defined by directions and nodes and also stores the particle distribution functions of all the nodes by direction, A partial array structure storage space 632 for storing functions in at least one temporary storage space.

이류 메모리 제어부(62)는 관심 대상 노드의 특정 방향 i에 대해, 반대 방향 i'에 대향한 이웃 노드로부터 어레이 구조 저장 공간(631)에 저장된 특정 방향 i의 입자 분포 함수를 부분 어레이 구조 저장 공간(632)에 복사한 임시 저장 공간을 가리키는 포인터로써 관심 대상 노드의 특정 방향 i의 입자 분포 함수가 저장된 어레이 구조 저장 공간(631) 내의 어드레스 범위의 포인터를 대체함으로써, 어레이 구조 저장 공간(631) 내의 관심 대상 노드의 입자 분포 함수들을 이류시킨다.The advection memory control unit 62 controls the particle distribution function of the specific direction i stored in the array structure storage space 631 from the neighboring node opposed to the opposite direction i 'to the partial array structure storage space 632 by replacing the pointer of the address range in the array structure storage space 631 storing the particle distribution function of the specific direction i of the interested node as a pointer to the temporary storage space copied into the array structure storage space 631 Adjacent the particle distribution functions of the target node.

여기서 반대 방향 i'는 방향 i와 하나의 직선을 이루면서 대향하는 방향을 가리킨다.Herein, the opposite direction i 'indicates the opposite direction forming a straight line with the direction i.

좀더 구체적으로, 이류 메모리 제어부(62)는 먼저, 전체 노드들의 방향 i의 입자 분포 함수들을 저장할 임시 저장 공간(6321)을 메모리(63) 내의 부분 어레이 구조 저장 공간(632)에 생성할 수 있다.More specifically, the advection memory control unit 62 may first create a temporary storage space 6321 in the partial array structure storage space 632 in the memory 63 to store the particle distribution functions of direction i of all the nodes.

이어서, 이류 메모리 제어부(62)는 관심 대상 노드의 방향 i의 반대 방향 i'에 대향한 이웃 노드의 방향 i의 저장 위치에 저장된 입자 분포 함수를 어레이 구조 저장 공간(631)로부터 부분 어레이 구조 저장 공간(632) 내의 방향 i에 관한 임시 저장 공간(6321) 내의 관심 대상 노드의 저장 위치에 저장하는 동작을 모든 노드에 대해 반복함으로써, 방향 i에 관한 임시 저장 공간(6321)에 방향 i에 관하여 이류된 전체 노드들의 입자 분포 함수들을 저장할 수 있다.Then, the advection memory control unit 62 stores the particle distribution function stored in the storage position of the direction i of the neighboring node opposite to the direction i 'of the direction i of the target node from the array structure storage space 631 to the partial array structure storage space To temporary storage 6321 of direction i, by storing in the storage location of the node of interest in temporal storage space 6321 in direction i within path 632, The particle distribution functions of all nodes can be stored.

다음으로 이류 메모리 제어부(62)는 어레이 구조 저장 공간(631) 내의 방향 i에 관한 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 임시 저장 공간(6321) 내에 입자 분포 함수들이 저장된 어드레스 범위의 포인터로써 대체할 수 있고, 이러한 동작을 모든 방향들의 각각에 대해 반복할 수 있다.Next, the advection memory control unit 62 stores the pointer of the address range in which the particle distribution functions of all nodes related to the direction i in the array structure storage space 631 are stored, the particle distribution functions in the temporary storage space 6321 related to the direction i It can be replaced by a pointer to an address range, and this operation can be repeated for each of all directions.

실시예에 따라, 이류 메모리 제어부(62)는 적어도 두 방향들 i 및 j에 관하여 전체 노드들의 입자 분포 함수들을 각각 저장할 적어도 두 벌의 제1 및 제2 임시 저장 공간들(6321, 6322)로 구성된 부분 어레이 구조 저장 공간(632)을 생성할 수 있다.According to the embodiment, the advection memory control unit 62 comprises at least two sets of first and second temporary storage spaces 6321, 6322, respectively, for storing the particle distribution functions of all nodes with respect to at least two directions i and j The partial array structure storage space 632 can be created.

이어서, 이류 메모리 제어부(62)는, 어레이 구조 저장 공간(631)을 참조하여, 관심 대상 노드의 방향들 i 및 j의 반대 방향들 i' 및 j'에 각각 대향한 이웃 노드들의 방향들 i 및 j의 저장 위치들에 각각 저장된 입자 분포 함수들을 방향들 i 및 j에 관한 제1 및 제2 임시 저장 공간들(6321, 6322) 내의 관심 대상 노드의 저장 위치들에 각각 저장하는 동작을 모든 노드에 대해 반복함으로써, 방향 i에 관한 제1 임시 저장 공간(6321)에 방향 i에 관하여 이류된 전체 노드들의 입자 분포 함수들을 저장하고, 또한 방향 j에 관한 제2 임시 저장 공간(6322)에 방향 j에 관하여 이류된 전체 노드들의 입자 분포 함수들을 저장할 수 있다.Next, referring to the array structure storage space 631, the advection memory control unit 62 controls the directions i and j of the neighboring nodes opposed to the opposite directions i 'and j' j is stored in storage locations of interest nodes in the first and second temporary storage spaces 6321 and 6322 for directions i and j, respectively, to all nodes < RTI ID = 0.0 > By storing in the first temporary storage space 6321 relating to the direction i the particle distribution functions of all the nodes adorned with respect to the direction i and also storing the particle distribution functions of the nodes in the second temporary storage space 6322 relating to the direction j in the direction j We can store the particle distribution functions of all nodes that are advected.

다음으로 이류 메모리 제어부(62)는 어레이 구조 저장 공간(631) 내에 방향들 i 및 j에 관하여 전체 노드들의 입자 분포 함수들이 각각 저장된 어드레스 범위들의 포인터들을 방향들 i 및 j에 관한 제1 및 제2 임시 저장 공간들(6321, 6322) 내에 입자 분포 함수들이 저장되는 어드레스 범위들의 포인터들로써 각각 대체할 수 있고, 이러한 동작을 적어도 두 개의 방향들로 구성된 방향 그룹들 각각에 대해 반복할 수 있다.Next, the advection memory control unit 62 stores pointers of the address ranges in which the particle distribution functions of the entire nodes are stored in the array structure storage space 631 with respect to the directions i and j, respectively, to the first and second Can be replaced with pointers of address ranges in which particle distribution functions are stored in temporary storage spaces 6321 and 6322, respectively, and this operation can be repeated for each of the direction groups consisting of at least two directions.

이때, 방향 j는 방향 i의 반대 방향 i'일 수 있다.At this time, the direction j may be the opposite direction i 'of the direction i.

이 경우에, 구체적으로, 이류 메모리 제어부(62)는 방향 i 및 반대 방향 i'에 관하여 관심 대상 노드의 입자 분포 함수들을 각각 저장할 수 있는 제1 및 제2 임시 저장 공간들(6321, 6322)을 포함하는 부분 어레이 구조 저장 공간(632)을 생성할 수 있다.In this case, specifically, the advection memory control unit 62 stores first and second temporary storage spaces 6321 and 6322, respectively, which can store the particle distribution functions of the interested node with respect to the direction i and the opposite direction i ' To generate a partial array structure storage space 632 that includes the partial array structure storage space 632.

이어서 이류 메모리 제어부(62)는, 어레이 구조 저장 공간(631)을 참조하여, 관심 대상 노드의 방향 i의 반대 방향 i'에 대향한 제1 이웃 노드에서 방향 i의 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 제1 임시 저장 공간(6321) 내의 관심 대상 노드의 저장 위치에 저장하며, 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드에서 반대 방향 i'의 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 제2 임시 저장 공간(6322) 내의 관심 대상 노드의 저장 위치에 저장할 수 있다.Next, the adiabatic memory control unit 62 refers to the array structure storage space 631, and determines whether the first particle distribution stored in the storage location of direction i in the first neighboring node opposite to the direction i ' Stores the function in the storage location of the node of interest in the first temporary storage space 6321 with respect to direction i and stores the function in the storage location of the second node in the opposite direction i ' And store the particle distribution function in the storage location of the node of interest in the second temporary storage space 6322 for the opposite direction i '.

다음으로 이류 메모리 제어부(62)는 어레이 구조 저장 공간(631) 내에 방향 i에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 제1 임시 저장 공간(6321) 내에 입자 분포 함수들이 저장되는 어드레스 범위의 포인터로써 대체하고, 또한 어레이 구조 저장 공간(631) 내에 반대 방향 i'에 관하여 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 반대 방향 i'에 관한 제2 임시 저장 공간(6322) 내에 입자 분포 함수들이 저장되는 어드레스 범위의 포인터로써 대체할 수 있고, 이러한 동작을 서로 반대되는 방향들로 구성된 나머지 방향쌍들 각각에 대해 반복할 수 있다.Next, the advection memory control unit 62 stores the pointer of the address range in which the particle distribution functions of all the nodes are stored in the array structure storage space 631 in the first temporary storage space 6321 related to the direction i, And a pointer in the address range in which the particle distribution functions of all the nodes are stored in the array structure storage space 631 in the opposite direction i 'is replaced with a pointer in the second temporary storage space Can be replaced by a pointer to an address range in which particle distribution functions are stored in a memory 6322 and this operation can be repeated for each of the remaining direction pairs configured in opposite directions.

본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. It will be understood that variations and specific embodiments which may occur to those skilled in the art are included within the scope of the present invention.

또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Further, the apparatus according to the present invention can be implemented as a computer-readable code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the recording medium include ROM, RAM, optical disk, magnetic tape, floppy disk, hard disk, nonvolatile memory and the like. The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

31 어레이 구조 저장 공간
32 부분 어레이 구조 저장 공간
321 제1 임시 저장 공간
322 제2 임시 저장 공간
40 관심 대상 노드
401 관심 대상 노드의 방향 i의 저장 위치
402 관심 대상 노드의 반대 방향 i'의 저장 위치
41 제1 이웃 노드
411 제1 이웃 노드의 방향 i의 저장 위치
42 제2 이웃 노드
421 제2 이웃 노드의 반대 방향 i'의 저장 위치
60 격자 볼츠만 기법 기반 유체 수치 해석 장치
61 충돌 연산부
62 이류 메모리 제어부
63 메모리
631 어레이 구조 저장 공간
632 부분 어레이 구조 저장 공간
6321 제1 임시 저장 공간
6322 제2 임시 저장 공간
31 Array Architecture Storage Space
32 Partial Array Structure Storage Space
321 First temporary storage space
322 Second temporary storage space
40 Interested node
401 Storage location of direction i of interested node
402 Storage location of i 'in the opposite direction of the node of interest
41 first neighbor node
411 Storage location of direction i of first neighbor node
42 second neighbor node
421 Storage location in the opposite direction i 'of the second neighbor node
60 Grid Boltzmann technique based fluid numerical analysis device
61 collision computing unit
62 Ad Hoc Memory Controller
63 Memory
631 Array structure storage space
632 Partial array structure storage space
6321 First temporary storage space
6322 Second temporary storage space

Claims (20)

컴퓨터가 수행하는 격자 볼츠만 기법 기반 유체 수치 해석 방법에 있어서,
(a) 복수의 방향들 각각에 의해 서로 연결된 노드들의 각각에 대하여, 각 방향마다 입자 분포 함수들을 격자 볼츠만 방정식에 기초하여 연산하는 단계; 및
(b) 상기 연산의 결과에 따라 방향별로 노드들의 입자 분포 함수들이 저장된 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키기 위해, 관심 대상 노드의 특정 방향 i에 관하여, 반대 방향 i'에 대향한 이웃 노드로부터 특정 방향 i의 입자 분포 함수가 복사되어 저장되는 임시 저장 공간을 가리키는 포인터로써 특정 방향 i의 관심 대상 노드의 입자 분포 함수가 저장된 어드레스 범위의 포인터를 대체함으로써, 각 방향들에 관하여 노드들의 입자 분포 함수들을 이류시키는 단계를 포함하고,
상기 (b) 단계는,
(b-1) 방향 i에 관하여 전체 노드들의 입자 분포 함수들을 저장할 임시 저장 공간을 생성하는 단계;
(b-2) 상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 이웃 노드의 방향 i의 저장 위치에 저장된 입자 분포 함수를 방향 i에 관한 상기 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 동작을 반복함으로써 방향 i에 관한 상기 임시 저장 공간에 방향 i에 관한 전체 노드들의 입자 분포 함수들을 저장하는 단계; 및
(b-3) 상기 어레이 구조 저장 공간 내에서 방향 i에 관한 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 상기 임시 저장 공간 내에 입자 분포 함수들이 저장된 어드레스 범위의 포인터로써 대체하는 동작을 모든 방향들의 각각에 대해 반복하는 단계를 포함하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 방법.
A computer-implemented lattice Boltzmann technique-based fluid numerical analysis method,
(a) computing, for each of the nodes connected to each other by the plurality of directions, the particle distribution functions for each direction based on the lattice Boltzmann equation; And
(b) in order to spread the particle distribution functions of each node to the neighbor nodes in the array structure storage space storing the particle distribution functions of the nodes according to the result of the operation, By replacing the pointer of the address range in which the particle distribution function of the interested node in the specific direction i is stored as a pointer to the temporary storage space in which the particle distribution function in the specific direction i is copied and stored from the neighboring node facing the direction i ' Aliasing the particle distribution functions of the nodes with respect to the directions,
The step (b)
(b-1) generating a temporary storage space for storing the particle distribution functions of all the nodes with respect to the direction i;
(b-2) refers to the array structure storage space, and stores a particle distribution function stored in a storage position of a direction i of a neighboring node opposite to i 'in the opposite direction of the node of interest, Storing the particle distribution functions of all nodes with respect to direction i in the temporary storage space with respect to direction i by repeating the operation of storing the node in a storage location; And
(b-3) replacing the pointer of the address range in which the particle distribution functions of all nodes with respect to direction i in the array structure storage space are stored with a pointer of the address range in which the particle distribution functions are stored in the temporary storage space with respect to direction i And repeating the operation for each of all directions. ≪ RTI ID = 0.0 > 11. < / RTI >
삭제delete 청구항 1에 있어서, 상기 (b-1) 단계, 상기 (b-2) 단계 및 상기 (b-3) 단계의 한 사이클 동안에, 방향 i는 적어도 두 방향들을 포함하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 방법.2. The method of claim 1, wherein during one cycle of steps (b-1), (b-2) and (b-3), the direction i comprises at least two directions Numerical fluid analysis method. 청구항 1에 있어서, 상기 (b-1) 단계, 상기 (b-2) 단계 및 상기 (b-3) 단계의 한 사이클 동안에, 방향 i는 서로 배향하는 두 방향들을 포함하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 방법.2. The method of claim 1, wherein during one cycle of step (b-1), step (b-2) and step (b-3), direction i comprises two orientations orienting one another. Technique - based fluid numerical analysis method. 청구항 1에 있어서,
상기 단계 (b)에서 상기 임시 저장 공간을 제공하기 위해 필요한 메모리 공간은 단계 (a) 동안에 연산 결과의 일시적 저장을 위해 이용되는 메모리 공간을 활용하여 제공되는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 방법.
The method according to claim 1,
Wherein the memory space required to provide the temporary storage space in step (b) is provided utilizing a memory space used for temporary storage of the computation results during step (a). Way.
청구항 5에 있어서, 상기 단계 (b)에서 상기 임시 저장 공간은 직전에 이류된 특정 방향 및 반대 방향에 관하여 상기 어레이 구조 저장 공간 내에 속하였던 어드레스 범위에 상응하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 방법.6. The method of claim 5, wherein the temporary storage space in step (b) corresponds to an address range that belonged to the array structure storage space with respect to the specific direction and the opposite direction that was immediately preceded. Interpretation method. 컴퓨터가 수행하는 격자 볼츠만 기법 기반 유체 수치 해석 방법에 있어서,
충돌 연산의 결과에 따라 방향별로 노드들의 입자 분포 함수들이 저장된 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키기 위해,
(i) 전체 노드들의 방향 i의 입자 분포 함수들 및 반대 방향 i'의 입자 분포 함수들을 각각 저장할 제1 및 제2 임시 저장 공간들을 포함하는 부분 어레이 구조 저장 공간을 마련하는 단계;
(ii) 상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 제1 이웃 노드의 방향 i에 상응하는 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 상기 제1 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계;
(iii) 상기 어레이 구조 저장 공간을 참조하여, 상기 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드의 반대 방향 i'에 상응하는 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 상기 제2 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계;
(iv) 상기 어레이 구조 저장 공간 내의 모든 노드들에 대하여, 단계 (ii) 내지 단계 (iii)를 반복하는 단계;
(v) 상기 어레이 구조 저장 공간 내의 방향 i의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 상기 제1 임시 저장 공간의 어드레스 포인터와 맞바꿈하는 단계;
(vi) 상기 어레이 구조 저장 공간 내의 반대 방향 i'의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 상기 제2 임시 저장 공간의 어드레스 포인터와 맞바꿈하는 단계; 및
(vii) 모든 방향 i 및 반대 방향 i'에 대하여, 단계 (i) 내지 단계 (vi)을 반복하는 단계를 포함하는 격자 볼츠만 기법 기반 유체 수치 해석 방법.
A computer-implemented lattice Boltzmann technique-based fluid numerical analysis method,
In order to spread the particle distribution functions of each node to the neighbor nodes in the array structure storage space storing the particle distribution functions of the nodes according to the result of the collision calculation,
(i) providing a partial array structure storage space including first and second temporary storage spaces for storing the particle distribution functions in direction i of all nodes and the particle distribution functions in opposite direction i ', respectively;
(ii) a first particle distribution function stored in a storage location corresponding to a direction i of a first neighbor node facing the opposite direction i 'of the node of interest, with reference to the array structure storage space, Storing in a storage location of a node of interest in a temporary storage space;
(iii) a second particle distribution function stored in a storage location corresponding to the opposite direction i 'of the second neighbor node facing the direction i of the node of interest, with reference to the array structure storage space, Storing in a storage location of a node of interest in the second temporary storage space;
(iv) repeating steps (ii) through (iii) for all nodes in the array structure storage space;
(v) swapping a pointer of an address range in which particle distribution functions of direction i in the array structure storage space are stored with an address pointer of the first temporary storage space;
(vi) swapping a pointer of the address range in which the particle distribution functions in the opposite direction i 'in the array structure storage space are stored with an address pointer of the second temporary storage space; And
(vii) repeating steps (i) through (vi) for all orientations i and i 'in the opposite direction.
청구항 7에 있어서, 상기 단계 (i) 내지 단계 (vi)에서 상기 제1 및 제2 임시 저장 공간들을 제공하기 위해 필요한 메모리 공간은 충돌 연산 단계 중에 연산 결과의 일시적인 저장을 위해 이용되는 메모리 공간을 활용하여 제공되는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 방법.8. The method of claim 7, wherein the memory space required to provide the first and second temporary storage spaces in steps (i) through (vi) utilizes a memory space used for temporal storage of operation results during the conflict operation step Wherein the method comprises the steps of: 청구항 8에 있어서, 상기 단계 (i)에서 마련되는 상기 제1 및 제2 임시 저장 공간들은 직전에 수행된 단계 (v) 및 단계 (vi) 동안에 특정 방향 및 반대 방향에 관하여 상기 어레이 구조 저장 공간 내에 속하였던 어드레스 범위들에 상응하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 방법.9. The method of claim 8, wherein the first and second temporary storage spaces provided in step (i) are stored in the array structure storage space with respect to a specific direction and an opposite direction during steps (v) and (vi) Wherein the first and second regions correspond to the address ranges to which they belong. 컴퓨터에서 청구항 1, 3 내지 청구항 9 중 어느 한 청구항에 따라 컴퓨터가 수행하는 격자 볼츠만 기법 기반 유체 수치 해석 방법을 구현할 수 있도록 작성된 프로그램이 수록된 컴퓨터로 독출 가능한 기록 매체.A computer-readable recording medium containing a computer-readable program embodying a grid-Boltzmann technique-based fluid numerical analysis method performed by a computer according to any one of claims 1 to 3 to claim 9. 컴퓨터를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 장치에 있어서,
복수의 방향들 각각에 의해 서로 연결된 노드들의 각각에 대하여, 각 방향마다 입자 분포 함수들을 격자 볼츠만 방정식에 기초하여 연산하는 충돌 연산부;
방향들 및 노드들에 의해 행과 열이 정의되고 또한 방향별로 모든 노드들의 입자 분포 함수들을 저장하는 어레이 구조 저장 공간 및 적어도 하나의 특정 방향에 관하여 모든 노드들의 입자 분포 함수들을 적어도 하나의 임시 저장 공간에 저장하기 위한 부분 어레이 구조 저장 공간을 제공하는 메모리; 및
상기 연산의 결과에 따라 상기 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키기 위해, 관심 대상 노드의 특정 방향 i에 관하여 반대 방향 i'에 대향한 이웃 노드로부터 특정 방향 i의 입자 분포 함수를 복사하여 저장한 상기 임시 저장 공간을 가리키는 포인터로써 특정 방향 i의 관심 대상 노드의 입자 분포 함수가 저장된 어드레스 범위의 포인터를 대체함으로써, 각 방향들에 관하여 노드들의 입자 분포 함수들을 이류시키는 이류 메모리 제어부를 포함하고,
상기 이류 메모리 제어부는,
(c-1) 상기 메모리 내에, 방향 i에 관하여 전체 노드들의 입자 분포 함수들을 저장할 상기 임시 저장 공간을 생성하고,
(c-2) 상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 이웃 노드의 방향 i의 저장 위치에 저장된 입자 분포 함수를 방향 i에 관한 상기 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 동작을 반복함으로써 방향 i에 관한 상기 임시 저장 공간에 방향 i에 관한 전체 노드들의 입자 분포 함수들을 저장하며,
(c-3) 상기 어레이 구조 저장 공간 내에서 방향 i에 관한 전체 노드들의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 방향 i에 관한 상기 임시 저장 공간 내에 입자 분포 함수들이 저장된 어드레스 범위의 포인터로써 대체하는 동작을 모든 방향들의 각각에 대해 반복하도록 동작하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 장치.
A computer-implemented lattice Boltzmann technique-based fluid numerical analysis apparatus,
A collision computing unit for computing, for each of the nodes connected to each other by the plurality of directions, the particle distribution functions for each direction based on the lattice Boltzmann equation;
An array structure storage space in which rows and columns are defined by directions and nodes and which also stores particle distribution functions of all nodes by direction, and particle distribution functions of all nodes with respect to at least one specific direction into at least one temporary storage space A memory for providing a partial array structure storage space for storing the partial array structure storage space; And
In order to spread the particle distribution functions of the respective nodes in the array structure storage space according to the result of the operation to the neighboring nodes, a specific direction i from the neighboring node facing the opposite direction i ' By replacing the pointer of the address range in which the particle distribution function of the interested node in the specific direction i is stored with the pointer indicating the temporary storage space in which the particle distribution function of the node i is copied and stored, And a control unit
Wherein the advection memory control unit comprises:
(c-1) generating, in the memory, the temporary storage space for storing the particle distribution functions of all nodes with respect to direction i,
(c-2) referring to the array structure storage space, a particle distribution function stored in a storage location of a direction i of a neighboring node opposite to i 'in the opposite direction of the node of interest, Storing the particle distribution functions of all the nodes in the direction i in the temporary storage space with respect to the direction i by repeating the operation of storing the node in the storage location,
(c-3) replacing the pointer of the address range in which the particle distribution functions of all nodes with respect to direction i in the array structure storage space are stored with a pointer of the address range in which the particle distribution functions are stored in the temporary storage space with respect to direction i And to repeat the operation for each of all directions. ≪ RTI ID = 0.0 > 8. < / RTI >
삭제delete 청구항 11에 있어서, 상기 이류 메모리 제어부가 상기 (c-1) 동작, 상기 (c-2) 동작 및 상기 (c-3) 동작을 한 사이클 수행하는 동안에, 방향 i는 적어도 두 방향들을 포함하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 장치.The method according to claim 11, wherein, while the advection memory controller performs one cycle of (c-1) operation, (c-2) operation and (c-3) operation, direction i includes at least two directions Lattice Boltzmann technique based fluid numerical analysis device characterized. 청구항 11에 있어서, 상기 이류 메모리 제어부가 상기 (c-1) 동작, 상기 (c-2) 동작 및 상기 (c-3) 동작의 한 사이클 수행하는 동안에, 방향 i는 서로 배향하는 두 방향들을 포함하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 장치.12. The method of claim 11, wherein the advection memory controller includes two directions that orient to one another during one cycle of (c-1), (c-2) Wherein the first and second sets of data are based on a grid-Boltzmann technique. 청구항 11에 있어서, 상기 메모리 내에서 상기 임시 저장 공간을 제공하기 위해 필요한 메모리 공간은 상기 충돌 연산부가 연산 결과의 일시적 저장을 위해 이용되는 메모리 공간을 활용하여 제공되는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 장치.12. The method of claim 11 wherein the memory space required to provide the temporary storage space in the memory is provided utilizing the memory space utilized by the conflict operation part for temporal storage of the computation results. Numerical analysis apparatus. 청구항 15에 있어서, 상기 메모리 내에 마련되는 상기 임시 저장 공간은 직전에 이류된 특정 방향 및 반대 방향에 관하여 상기 어레이 구조 저장 공간 내에 속하였던 어드레스 범위에 상응하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 장치.16. The method of claim 15, wherein the temporary storage space provided in the memory corresponds to an address range that was within the array structure storage space with respect to a particular direction and the opposite direction imposed immediately before. Device. 컴퓨터를 이용한 격자 볼츠만 기법 기반 유체 수치 해석 장치에 있어서,
복수의 방향들 각각에 의해 서로 연결된 노드들의 각각에 대하여, 각 방향마다 입자 분포 함수들을 격자 볼츠만 방정식에 기초하여 연산하는 충돌 연산부;
방향들 및 노드들에 의해 행과 열이 정의되고 또한 방향별로 모든 노드들의 입자 분포 함수들을 저장하는 어레이 구조 저장 공간과, 특정 방향 및 반대 방향에 관하여 모든 노드들의 입자 분포 함수들을 두 개의 임시 저장 공간들에 저장하기 위한 부분 어레이 구조 저장 공간을 제공하는 메모리; 및
충돌 연산의 결과에 따라 방향별로 노드들의 입자 분포 함수들이 저장된 어레이 구조 저장 공간 내에서 각 노드의 입자 분포 함수들을 이웃 노드들로 확산시키는 이류 메모리 제어부를 포함하고,
상기 이류 메모리 제어부는,
(i) 상기 메모리 내에, 전체 노드들의 방향 i의 입자 분포 함수들 및 반대 방향 i'의 입자 분포 함수들을 각각 저장할 제1 및 제2 임시 저장 공간들을 포함하는 부분 어레이 구조 저장 공간을 마련하는 단계,
(ii) 상기 어레이 구조 저장 공간을 참조하여, 관심 대상 노드의 반대 방향 i'에 대향한 제1 이웃 노드의 방향 i에 상응하는 저장 위치에 저장된 제1 입자 분포 함수를 방향 i에 관한 상기 제1 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계,
(iii) 상기 어레이 구조 저장 공간을 참조하여, 상기 관심 대상 노드의 방향 i에 대향한 제2 이웃 노드의 반대 방향 i'에 상응하는 저장 위치에 저장된 제2 입자 분포 함수를 반대 방향 i'에 관한 상기 제2 임시 저장 공간 내의 관심 대상 노드의 저장 위치에 저장하는 단계,
(iv) 상기 어레이 구조 저장 공간 내의 모든 노드들에 대하여, 단계 (ii) 내지 단계 (iii)를 반복하는 단계,
(v) 상기 어레이 구조 저장 공간 내의 방향 i의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 상기 제1 임시 저장 공간의 어드레스 포인터와 맞바꿈하는 단계,
(vi) 상기 어레이 구조 저장 공간 내의 반대 방향 i'의 입자 분포 함수들이 저장된 어드레스 범위의 포인터를 상기 제2 임시 저장 공간의 어드레스 포인터와 맞바꿈하는 단계 및
(vii) 모든 방향 i 및 반대 방향 i'에 대하여, 단계 (i) 내지 단계 (vi)을 반복하는 단계를 수행하도록 동작하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 장치.
A computer-implemented lattice Boltzmann technique-based fluid numerical analysis apparatus,
A collision computing unit for computing, for each of the nodes connected to each other by the plurality of directions, the particle distribution functions for each direction based on the lattice Boltzmann equation;
An array structure storage space in which rows and columns are defined by directions and nodes and also stores particle distribution functions of all the nodes in a direction and a particle array storage space in which all particle distribution functions of all nodes in a specific direction and a reverse direction are stored in two temporary storage spaces A memory for providing a partial array structure storage space for storing in a memory; And
And an advection memory control unit for diffusing the particle distribution functions of each node into neighboring nodes in the array structure storage space storing the particle distribution functions of the nodes according to the result of the collision calculation,
Wherein the advection memory control unit comprises:
(i) providing, in the memory, a partial array structure storage space including first and second temporary storage spaces for respectively storing particle distribution functions in direction i of all nodes and particle distribution functions in opposite direction i '
(ii) a first particle distribution function stored in a storage location corresponding to a direction i of a first neighbor node facing the opposite direction i 'of the node of interest, with reference to the array structure storage space, Storing in a storage location of a node of interest in the temporary storage space,
(iii) a second particle distribution function stored in a storage location corresponding to the opposite direction i 'of the second neighbor node facing the direction i of the node of interest, with reference to the array structure storage space, Storing at a storage location of a node of interest in the second temporary storage space,
(iv) repeating steps (ii) to (iii) for all nodes in the array structure storage space,
(v) swapping a pointer of an address range in which the particle distribution functions of direction i in the array structure storage space are stored with an address pointer of the first temporary storage space,
(vi) swapping a pointer of the address range in which the particle distribution functions in the opposite direction i 'in the array structure storage space are stored with the address pointer of the second temporary storage space, and
(vii) repeating steps (i) through (vi) for all directions i and i 'in the opposite direction.
청구항 17에 있어서, 상기 단계 (i) 내지 단계 (vi)에서 상기 제1 및 제2 임시 저장 공간들을 제공하기 위해 필요한 메모리 공간은 충돌 연산 단계 중에 연산 결과의 일시적인 저장을 위해 이용되는 메모리 공간을 활용하여 제공되는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 장치.18. The method of claim 17, wherein the memory space required to provide the first and second temporary storage spaces in steps (i) through (vi) utilizes a memory space used for temporal storage of operation results during the conflict operation step Wherein the first and second regions are provided by a lattice Boltzmann technique. 청구항 18에 있어서, 상기 단계 (i)에서 마련되는 상기 제1 및 제2 임시 저장 공간들은 직전에 수행된 단계 (v) 및 단계 (vi) 동안에 특정 방향 및 반대 방향에 관하여 상기 어레이 구조 저장 공간 내에 속하였던 어드레스 범위들에 상응하는 것을 특징으로 하는 격자 볼츠만 기법 기반 유체 수치 해석 장치.19. The method of claim 18, wherein the first and second temporary storage spaces provided in step (i) are within the array structure storage space with respect to a specific direction and an opposite direction during steps (v) and (vi) Wherein the first and second regions correspond to the address ranges to which they belong. 삭제delete
KR20140080077A 2014-06-27 2014-06-27 Memory control algorithm, method and apparatus using the same for fluid numerical analysis based on lattice boltzmann method KR101489708B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20140080077A KR101489708B1 (en) 2014-06-27 2014-06-27 Memory control algorithm, method and apparatus using the same for fluid numerical analysis based on lattice boltzmann method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20140080077A KR101489708B1 (en) 2014-06-27 2014-06-27 Memory control algorithm, method and apparatus using the same for fluid numerical analysis based on lattice boltzmann method

Publications (1)

Publication Number Publication Date
KR101489708B1 true KR101489708B1 (en) 2015-02-16

Family

ID=52593544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140080077A KR101489708B1 (en) 2014-06-27 2014-06-27 Memory control algorithm, method and apparatus using the same for fluid numerical analysis based on lattice boltzmann method

Country Status (1)

Country Link
KR (1) KR101489708B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220011513A (en) * 2020-07-21 2022-01-28 이에이트 주식회사 Apparatus, method and computer program for lattice boltzmann method-based fluid analysis simulation
KR20230130963A (en) 2022-03-04 2023-09-12 이에이트 주식회사 Apparatus, method and computer program for removing node unnecessary for calculation in lattice boltzmann method based fluid analysis simulation
KR20230133120A (en) 2022-03-10 2023-09-19 이에이트 주식회사 Apparatus, method and computer program for purifying contaminated information of multiblock algorithm for lattice boltzmann method based fluid analysis simulation
KR20230133115A (en) 2022-03-10 2023-09-19 이에이트 주식회사 Apparatus, method and computer program for setting information exchange node of multiblock for lattice boltzmann method based fluid analysis simulation
KR102612846B1 (en) 2023-05-02 2023-12-12 씨넘버스 주식회사 Flow analysis simulation apparatus, method and computer program based on boundary layer grid generation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
대한토목학회논문집 제32권 제6C호-2012년 11월, pp. 267~274(격자 볼츠만 방법에 의한 지반 내 오염물질의 거동 분석, 강동훈-윤태섭) *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220011513A (en) * 2020-07-21 2022-01-28 이에이트 주식회사 Apparatus, method and computer program for lattice boltzmann method-based fluid analysis simulation
KR102436665B1 (en) 2020-07-21 2022-08-26 이에이트 주식회사 Apparatus, method and computer program for multigrid lattice boltzmann method and large eddy simulation based high reynolds number fluid analysis simulation
KR20230130963A (en) 2022-03-04 2023-09-12 이에이트 주식회사 Apparatus, method and computer program for removing node unnecessary for calculation in lattice boltzmann method based fluid analysis simulation
KR20230133120A (en) 2022-03-10 2023-09-19 이에이트 주식회사 Apparatus, method and computer program for purifying contaminated information of multiblock algorithm for lattice boltzmann method based fluid analysis simulation
KR20230133115A (en) 2022-03-10 2023-09-19 이에이트 주식회사 Apparatus, method and computer program for setting information exchange node of multiblock for lattice boltzmann method based fluid analysis simulation
KR102612846B1 (en) 2023-05-02 2023-12-12 씨넘버스 주식회사 Flow analysis simulation apparatus, method and computer program based on boundary layer grid generation

Similar Documents

Publication Publication Date Title
Hötzer et al. The parallel multi-physics phase-field framework Pace3D
KR101489708B1 (en) Memory control algorithm, method and apparatus using the same for fluid numerical analysis based on lattice boltzmann method
Han et al. Adaptive multi-resolution method for compressible multi-phase flows with sharp interface model and pyramid data structure
Wittmann et al. Comparison of different propagation steps for lattice Boltzmann methods
Valero-Lara et al. Accelerating fluid–solid simulations (Lattice-Boltzmann & Immersed-Boundary) on heterogeneous architectures
Ziegler The NIRVANA code: Parallel computational MHD with adaptive mesh refinement
Innocenti et al. A multi level multi domain method for particle in cell plasma simulations
Zabelok et al. Adaptive kinetic-fluid solvers for heterogeneous computing architectures
Tiwari et al. A particle–particle hybrid method for kinetic and continuum equations
Valero-Lara et al. Accelerating solid-fluid interaction using lattice-boltzmann and immersed boundary coupled simulations on heterogeneous platforms
Khait et al. Gpu-offloaded general purpose simulator for multiphase flow in porous media
Yuan et al. Macroscopic pedestrian flow simulation using Smoothed Particle Hydrodynamics (SPH)
Grady et al. Model-parallel Fourier neural operators as learned surrogates for large-scale parametric PDEs
Wu et al. Development of a parallel adaptive multigrid algorithm for solving the multi-scale thermal-solute 3D phase-field problems
Biferale et al. Lattice Boltzmann fluid-dynamics on the QPACE supercomputer
Galán Fast Evacuation Method: Using an effective dynamic floor field based on efficient pedestrian assignment
Du et al. FPGA-based computational fluid dynamics simulation architecture via high-level synthesis design method
Xu et al. Rational finite difference solution of first-order Fredholm integro-differential equations via SOR iteration
Araki et al. Dynamic load balancing with over decomposition in plasma plume simulations
Nguyen Material point method: basics and applications
JP2016143210A (en) Magnetic field simulator program, magnetic field simulator and magnetic field simulation method
Akhmetova et al. Interoperability of gaspi and mpi in large scale scientific applications
Christensen et al. Nonlinear multigrid for reservoir simulation
JP2008197921A (en) Simulation device, simulation method and simulation program
Frisch et al. Adaptive multi-grid methods for parallel CFD applications

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee