KR101244826B1 - System and method for fluid simulation using interaction between grid and particle - Google Patents

System and method for fluid simulation using interaction between grid and particle Download PDF

Info

Publication number
KR101244826B1
KR101244826B1 KR1020110019295A KR20110019295A KR101244826B1 KR 101244826 B1 KR101244826 B1 KR 101244826B1 KR 1020110019295 A KR1020110019295 A KR 1020110019295A KR 20110019295 A KR20110019295 A KR 20110019295A KR 101244826 B1 KR101244826 B1 KR 101244826B1
Authority
KR
South Korea
Prior art keywords
particles
fluid
velocity
particle
field
Prior art date
Application number
KR1020110019295A
Other languages
Korean (ko)
Other versions
KR20120100419A (en
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 KR1020110019295A priority Critical patent/KR101244826B1/en
Publication of KR20120100419A publication Critical patent/KR20120100419A/en
Application granted granted Critical
Publication of KR101244826B1 publication Critical patent/KR101244826B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/603D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/24Fluid dynamics

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법은, 유체를 포함하는 계산 영역에 대응되며, 하나 이상의 정점을 포함하는 격자의 속도 필드를 복수 개의 시간 단계별로 산출하는 단계; 상기 각 시간 단계에서 상기 격자의 속도 필드에 기초하여 하나 이상의 입자를 생성하는 단계; 상기 하나 이상의 입자의 위치 및 속도를 상기 복수 개의 시간 단계별로 산출하는 단계; 및 상기 각 시간 단계에서, 상기 하나 이상의 입자 중 상기 유체에 대응되는 영역에 위치하는 상기 입자의 속도를 이용하여 상기 격자의 속도 필드를 갱신하는 단계를 포함할 수 있다.A fluid simulation method using the interaction between the lattice and the particles may include calculating a velocity field of a lattice corresponding to a calculation region including a fluid and including one or more vertices in a plurality of time steps; Generating at least one particle based on the velocity field of the grating in each time step; Calculating positions and velocities of the one or more particles in the plurality of time steps; And updating the velocity field of the lattice using the velocity of the particles located in the region corresponding to the fluid among the one or more particles.

Description

격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템 및 방법{SYSTEM AND METHOD FOR FLUID SIMULATION USING INTERACTION BETWEEN GRID AND PARTICLE}Fluid simulation system and method using the interaction of lattice and particles {SYSTEM AND METHOD FOR FLUID SIMULATION USING INTERACTION BETWEEN GRID AND PARTICLE}

실시예들은 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템 및 방법에 관한 것이다. Embodiments relate to fluid simulation systems and methods using the interaction of lattice and particles.

컴퓨터 그래픽스(Computer Graphics; CG) 분야, 특히 시각 효과(Visual Effects; VFX) 분야에 있어서 유체 시뮬레이션은 상당히 많은 계산량을 요구하기 때문에, 컴퓨터의 성능이 향상된 최근에 있어서도 많은 연구 및 개발을 요한다. 한편, CG 분야가 태동하기 이전부터 유체의 유동을 수치적으로 풀어내려는 연구는 전산 유체 역학(Computational Fluid Dynamics; CFD) 분야를 중심으로 논의되어 왔다. In the field of computer graphics (CG), especially in the field of visual effects (VFX), fluid simulation requires a great deal of computation, and therefore, a lot of research and development is required even in recent years with improved computer performance. On the other hand, studies to quantify the flow of fluid numerically before the birth of the CG field have been discussed in the field of Computational Fluid Dynamics (CFD).

일상에서 접할 수 있는 유체의 움직임은 대부분 비압축성 유체 유동(incompressible fluid flow)으로 볼 수 있으며, CG 및 CFD 분야에서는 비압축성 유체 유동을 해석하기 위해 나비어-스톡스(Navier-Stokes) 방정식을 지배 방정식으로 사용하고 있다. 나비어-스톡스 방정식은 여러 가지 형태의 편미분 방정식이 하나의 식으로 결합되어 있으므로 해석적인 해(analytic solution)가 존재하지 않으며, 1970년대에 들어서야 비로소 컴퓨터를 이용한 수치적인 해를 구할 수 있게 되었다. Most of the fluid movements encountered in everyday life can be seen as incompressible fluid flow, and in the field of CG and CFD, the Navier-Stokes equation is used as the governing equation to interpret incompressible fluid flow. Doing. Navier-Stokes equations do not have an analytical solution because many different partial differential equations are combined into one equation, and it is not until the 1970s that numerical solutions have been available using computers.

CG 분야에서는, "Stable Fluids"의 제목을 가지며 1999년 발행된, 본 명세서에 참조로서 온전히 포함되는 Jos Stam의 논문을 시작으로 유체 시뮬레이션이 도입되기 시작하였다. Jos Stam의 논문에 기재되어 있는 유체 유동 시뮬레이션 방법은, 유체의 계산 영역을 격자(grid) 형태의 유한요소로 분할하고, 나비어-스톡스 방정식을 연산하여 각 프레임(frame)별로 격자의 속도 필드를 산출함으로써 시간에 따른 유체의 움직임을 시뮬레이션하도록 구성된다. In the field of CG, fluid simulations have begun to be introduced, starting with Jos Stam's paper, entitled "Stable Fluids", published in 1999, which is hereby incorporated by reference in its entirety. The fluid flow simulation method described in Jos Stam's paper divides the computational domain of the fluid into a grid-like finite element and computes the Navier-Stocks equation to calculate the velocity field of the grid for each frame. By calculating the motion of the fluid over time.

본 발명의 일 측면에 따르면, 격자 기반의 유체 유동 시뮬레이션 기법에 유체 입자를 더하여 유체 유동 시뮬레이션을 수행할 수 있으며, 격자와 입자 사이의 상호 작용을 시뮬레이션하는 것이 가능한 유체 유동 시뮬레이션 시스템 및 방법을 제공할 수 있다. According to one aspect of the present invention, a fluid flow simulation system and method capable of performing fluid flow simulation by adding fluid particles to a lattice-based fluid flow simulation technique, and capable of simulating the interaction between the lattice and the particles, may be provided. Can be.

일 실시예에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템은, 유체를 포함하는 계산 영역에 대응되며, 하나 이상의 정점을 포함하는 격자의 속도 필드를 복수 개의 시간 단계별로 산출하는 격자 시뮬레이션 모듈; 상기 각 시간 단계에서 상기 격자의 속도 필드에 기초하여 하나 이상의 입자를 생성하는 입자 생성 모듈; 상기 하나 이상의 입자의 위치 및 속도를 상기 복수 개의 시간 단계별로 산출하는 입자 시뮬레이션 모듈; 및 상기 각 시간 단계에서, 상기 하나 이상의 입자 중 상기 유체에 대응되는 영역에 위치하는 상기 입자의 속도를 이용하여 상기 격자의 속도 필드를 갱신하는 상호 작용 모듈을 포함할 수 있다.According to one or more exemplary embodiments, a fluid simulation system using a grid-particle interaction includes a grid simulation module corresponding to a calculation region including a fluid and calculating a velocity field of a grid including one or more vertices in a plurality of time steps; A particle generation module for generating one or more particles based on the velocity field of the lattice in each time step; A particle simulation module for calculating positions and velocities of the one or more particles in the plurality of time steps; And in each time step, an interaction module for updating the velocity field of the lattice by using the velocity of the particle located in an area corresponding to the fluid among the one or more particles.

일 실시예에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법은, 유체를 포함하는 계산 영역에 대응되며, 하나 이상의 정점을 포함하는 격자의 속도 필드를 복수 개의 시간 단계별로 산출하는 단계; 상기 각 시간 단계에서 상기 격자의 속도 필드에 기초하여 하나 이상의 입자를 생성하는 단계; 상기 하나 이상의 입자의 위치 및 속도를 상기 복수 개의 시간 단계별로 산출하는 단계; 및 상기 각 시간 단계에서, 상기 하나 이상의 입자 중 상기 유체에 대응되는 영역에 위치하는 상기 입자의 속도를 이용하여 상기 격자의 속도 필드를 갱신하는 단계를 포함할 수 있다.According to one or more exemplary embodiments, a fluid simulation method using interaction between a lattice and particles may include calculating, by a plurality of time steps, a velocity field of a lattice corresponding to a calculation region including a fluid and including one or more vertices; Generating at least one particle based on the velocity field of the grating in each time step; Calculating positions and velocities of the one or more particles in the plurality of time steps; And updating the velocity field of the lattice using the velocity of the particles located in the region corresponding to the fluid among the one or more particles.

본 발명의 일 측면에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템 및 방법에 의하면, 격자 기반의 유체 유동 시뮬레이션 기법에 유체 입자를 더하여 유체 유동 시뮬레이션을 수행할 수 있으며, 격자와 입자 사이의 상호 작용을 시뮬레이션하는 것이 가능한 이점이 있다.According to the fluid simulation system and method using the lattice-particle interaction according to an aspect of the present invention, it is possible to perform the fluid flow simulation by adding fluid particles to the lattice-based fluid flow simulation technique, the interaction between the lattice and particles It is possible to simulate the action.

도 1은 일 실시예에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템의 블록도이다.
도 2는 일 실시예에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법의 순서도이다.
도 3a 내지 3h는 일 실시예에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 과정을 나타내는 도면들이다.
1 is a block diagram of a fluid simulation system using the interaction of gratings and particles, according to one embodiment.
2 is a flowchart of a fluid simulation method using interaction between a lattice and particles according to an embodiment.
3A to 3H are diagrams illustrating a fluid simulation process using interaction between a lattice and particles according to an embodiment.

이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

도 1은 일 실시예에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템의 블록도이다. 1 is a block diagram of a fluid simulation system using the interaction of gratings and particles, according to one embodiment.

도 1을 참조하면, 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템은 격자 시뮬레이션 모듈(10), 입자 생성 모듈(20), 입자 시뮬레이션 모듈(30) 및 상호 작용 모듈(40)을 포함할 수 있다. 일 실시예에서, 입자 생성 모듈(20)은 가속도 산출부(210) 및 입자 생성부(220)를 포함할 수 있다. 일 실시예에서, 상호 작용 모듈(40)은 위치 결정부(410), 속도 수정부(420) 및 입자 삭제부(430)를 포함할 수 있다. Referring to FIG. 1, the fluid simulation system using the interaction between the lattice and the particles may include the lattice simulation module 10, the particle generation module 20, the particle simulation module 30, and the interaction module 40. . In one embodiment, the particle generation module 20 may include an acceleration calculator 210 and a particle generator 220. In one embodiment, the interaction module 40 may include a positioning unit 410, a speed correction unit 420, and a particle deletion unit 430.

본 명세서에 기술된 실시예는 전적으로 하드웨어이거나, 부분적으로 하드웨어이고 부분적으로 소프트웨어이거나, 또는 전적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 본 명세서에서 부(unit), 모듈(module) 또는 시스템 등은 하드웨어, 하드웨어와 소프트웨어의 조합, 또는 소프트웨어 등 컴퓨터 관련 엔티티(entity)를 지칭할 수 있다. 예를 들어, 부, 모듈 또는 시스템은 실행중인 프로세스, 프로세서, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램, 및/또는 컴퓨터일 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 컴퓨터에서 실행중인 애플리케이션(application) 및 컴퓨터의 양쪽이 모두 본 명세서에 기재된 부, 모듈 또는 시스템에 해당할 수 있다.Embodiments described herein may have aspects that are wholly hardware, partly hardware and partly software, or wholly software. For example, a unit, module, system, or the like herein may refer to hardware, a combination of hardware and software, or a computer related entity such as software. For example, a part, module or system may be, but is not limited to being, a running process, a processor, an object, an executable, a thread of execution, a program, and / or a computer. . For example, both an application running on a computer and a computer may correspond to a unit, module, or system described herein.

격자 시뮬레이션 모듈(10)은 시뮬레이션의 대상이 되는 유체를 포함하는 계산 영역을 격자 형태의 유한 요소로 분할하고, 격자의 속도 필드를 시간 단계(time step) 별로 산출함으로써 유체의 움직임을 시뮬레이션할 수 있다. 예컨대, 격자는 하나 이상의 셀(cell)을 포함할 수 있으며, 각 셀(cell)의 꼭지점에 해당하는 정점(vertex)에 대해 속도값이 정의될 수 있다. 그러나, 이는 예시적인 것으로서, 다른 실시예에서는 각 셀의 중심에 대해 속도값이 정의될 수도 있다. 또한, 격자는 2차원 또는 3차원의 격자 형태일 수 있으나, 이에 한정되는 것은 아니다. The grid simulation module 10 may simulate the fluid movement by dividing the calculation region including the fluid to be simulated into a finite element in the form of a grid and calculating the velocity field of the grid for each time step. . For example, the grating may include one or more cells, and a velocity value may be defined for a vertex corresponding to a vertex of each cell. However, this is exemplary and in other embodiments a velocity value may be defined for the center of each cell. In addition, the grid may be in the form of a two-dimensional or three-dimensional grid, but is not limited thereto.

격자 시뮬레이션 모듈(10)은 각 시간 단계에서 격자의 속도 필드에 대하여 나비어-스톡스(Navier-Stokes) 방정식을 연산함으로서 유체의 움직임을 시뮬레이션할 수 있다. 나비어-스톡스 방정식의 연산 과정에 대해서는, "Stable Fluids"의 제목을 가지며 1999년 발행된, 본 명세서에 참조로서 온전히 포함되는 Jos Stam의 논문 등에 개시되어 당업자에게 용이하게 이해될 수 있으므로 자세한 설명을 생략한다. The grid simulation module 10 can simulate the motion of the fluid by computing the Navier-Stokes equation for the velocity field of the grid at each time step. The computational process of the Navier-Stokes equation is described in Jos Stam's paper, entitled "Stable Fluids", published in 1999, which is hereby incorporated by reference in its entirety and can be easily understood by those skilled in the art. Omit.

입자 생성 모듈(20)의 가속도 산출부(210)에서는, 격자 시뮬레이션 모듈(10)에서 산출된 격자의 각 시간 단계별 속도 필드를 이용하여 가속도 필드를 산출할 수 있다. 예를 들어, 가속도 산출부(210)는 유체 시뮬레이션에서 n번째 프레임(frame)의 속도 필드와 n-1번째 프레임의 속도 필드의 차를 이용하여 가속도 필드를 산출할 수 있다. 입자 생성부(220)에서는, 가속도 산출부(210)에서 산출된 가속도 필드에서 가속도가 미리 결정된 문턱값 이상인 영역에 입자를 생성할 수 있다. 예를 들어, 가속도 필드에서 가속도 값이 문턱값 이상인 정점에 인접하여 입자가 생성될 수 있다.In the acceleration calculation unit 210 of the particle generation module 20, the acceleration field may be calculated by using the velocity fields for each time step of the grid calculated by the grid simulation module 10. For example, the acceleration calculator 210 may calculate an acceleration field by using a difference between a velocity field of an n th frame and a velocity field of an n−1 th frame in a fluid simulation. The particle generator 220 may generate particles in a region in which the acceleration is greater than or equal to a predetermined threshold in the acceleration field calculated by the acceleration calculator 210. For example, particles may be generated adjacent to a vertex in which the acceleration value is greater than or equal to the threshold in the acceleration field.

격자 시뮬레이션 모듈(30)은, 입자 생성 모듈(20)에 의해 생성된 하나 이상의 입자의 위치 및 속도를 복수 개의 시간 단계별로 산출할 수 있다. 즉, 하나 이상의 입자는 유체 시뮬레이션이 진행되는 동안 중력, 공기 저항 등의 외부 힘 및/또는 입자들 간의 상호작용에 의한 내부 힘에 의한 영향을 받으면서 움직일 수 있다. 격자 시뮬레이션 모듈(30)에서는 공지된 입자 기반의 시뮬레이션 기법에 기초하여 하나 이상의 입자의 위치 및 속도를 시간 단계별로 산출할 수 있다. 유체 시뮬레이션에서 이용되는 입자 시뮬레이션 기법에 대해서는 본 발명의 기술 분야의 당업자들에게 잘 알려져 있으므로 자세한 설명을 생략한다. The grid simulation module 30 may calculate the positions and velocities of one or more particles generated by the particle generation module 20 in a plurality of time steps. That is, one or more particles can move while being subjected to fluidic simulation while being influenced by external forces such as gravity, air resistance, and / or internal forces due to interactions between the particles. The grid simulation module 30 may calculate the position and velocity of one or more particles in time steps based on known particle-based simulation techniques. Particle simulation techniques used in fluid simulations are well known to those skilled in the art and will not be described in detail.

상호 작용 모듈(40)의 위치 결정부(410)는, 각 시간 단계별로 격자에서 입자의 위치가 유체 내부인지를 결정할 수 있다. 입자가 유체 내부에 위치하는지 여부는 입자의 레벨 셋(level set) 값을 산출함으로써 결정될 수 있으며, 이는 상세히 후술한다. 속도 수정부(420)는, 유체 내부에 위치하는 입자의 속도를 이용하여 해당 입자로부터 미리 결정된 거리 내에 위치하는 유체 내부의 정점들의 속도값을 수정할 수 있다. 이와 같이 수정된 속도값을 이용하여 다음 시간 단계의 시뮬레이션 과정을 수행함으로써 속도 필드가 갱신될 수 있다. 입자 삭제부(430)는, 속도 수정부(420)에 의해 정점들의 속도값의 갱신이 이루어진 후 유체 내부의 입자를 삭제할 수 있다. The positioning unit 410 of the interaction module 40 may determine whether the position of the particles in the lattice is inside the fluid for each time step. Whether the particles are located inside the fluid can be determined by calculating the level set values of the particles, which will be described later in detail. The velocity correction unit 420 may modify the velocity values of the vertices in the fluid located within a predetermined distance from the particle by using the velocity of the particles located in the fluid. The velocity field may be updated by performing a simulation process of a next time step using the modified velocity value. The particle deleting unit 430 may delete particles in the fluid after the speed correction unit 420 updates the speed values of the vertices.

도 2는 일 실시예에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법의 순서도이며, 도 3a 내지 3h는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 과정을 나타내는 도면들이다. 도 2 및 도 3a 내지 3h를 참조하여 일 실시예에에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법에 대하여 설명한다. 2 is a flow chart of a fluid simulation method using the interaction between the lattice and the particle according to an embodiment, Figures 3a to 3h is a view showing a fluid simulation process using the interaction of the lattice and the particle. Referring to FIGS. 2 and 3A to 3H, a fluid simulation method using a lattice-particle interaction according to an embodiment will be described.

먼저, 유체 시뮬레이션의 임의의 시간 단계에서, 전 시간 단계의 속도 필드에 대하여 나비어-스톡스 방정식을 연산함으로써 현재 시간 단계의 격자의 속도 필드를 산출할 수 있다(S1). 나비어-스톡스 방정식의 연산에 의한 유체 유동 시뮬레이션 방법에 대해서는 본 발명의 기술 분야의 당업자들에게 잘 알려져 있으므로 자세한 설명을 생략한다.First, in any time step of the fluid simulation, the velocity field of the lattice of the current time step can be calculated by calculating the Naïr-Stokes equation for the velocity field of the previous time step (S1). The fluid flow simulation method by calculation of the Navier-Stokes equation is well known to those skilled in the art of the present invention, and thus detailed description thereof is omitted.

3a를 참조하면, 임의의 시간 단계에서 현재 시간 단계의 속도 필드와 전 시간 단계의 속도 필드를 비교하여 가속도 필드를 산출할 수 있다(S2). 다음으로, 산출된 가속도 필드에 기초하여 유체(300)에 인접한 하나 이상의 입자(310, 320)를 생성할 수 있다(S3). 예를 들어, 가속도 필드에서 임의의 셀 주변의 정점들이 미리 결정된 문턱값 이상의 가속도 값을 갖는 경우, 해당 셀에 입자를 생성할 수 있다. 상기 문턱값은 시뮬레이션 대상 유체의 점성 등 특징에 기초하여 적절히 결정될 수 있다. 또한, 생성되는 입자의 위치 및 속도는 입자에 인접한 정점들의 속도값에 기초하여 비례적으로 결정될 수도 있다. 본 명세서에 첨부된 도면들에서 각각의 입자 또는 정점에 표시된 화살표는 각 입자 또는 정점의 속도 벡터를 나타낸다. Referring to 3a, the acceleration field may be calculated by comparing the speed field of the current time step with the speed field of the previous time step in an arbitrary time step (S2). Next, one or more particles 310 and 320 adjacent to the fluid 300 may be generated based on the calculated acceleration field (S3). For example, when the vertices around any cell in the acceleration field have an acceleration value greater than or equal to a predetermined threshold, particles may be generated in the cell. The threshold value may be appropriately determined based on characteristics such as viscosity of the fluid to be simulated. In addition, the position and velocity of the particles produced may be proportionally determined based on the velocity values of the vertices adjacent to the particles. Arrows marked on each particle or vertex in the figures appended here indicate the velocity vector of each particle or vertex.

도 3b 및 3c를 참조하면, 전술한 과정에 의하여 생성된 하나 이상의 입자(310, 320)의 위치 및 속도에 기초하여 후속하는 하나 이상의 시간 단계에서 하나 이상의 입자(310, 320)의 위치 및 속도를 산출할 수 있다(S4). 각각의 입자(310, 320)는 유체 시뮬레이션이 진행됨에 따라 중력, 공기 저항 등의 외부 힘 및/또는 입자(310, 320)들 사이의 내부 힘에 의한 영향을 받아 이동할 수 있다. 이때, 도 3c에 도시된 것과 같이 하나 이상의 입자(310, 320) 중 일부 또는 전부가 유체(300)에 인접한 방향으로 이동할 수도 있다. 3B and 3C, the positions and velocities of one or more particles 310, 320 in subsequent one or more time steps based on the positions and velocities of one or more particles 310, 320 generated by the process described above. It can calculate (S4). Each particle 310, 320 may move under the influence of an external force such as gravity, air resistance, and / or internal forces between the particles 310, 320 as the fluid simulation proceeds. In this case, as shown in FIG. 3C, some or all of the one or more particles 310 and 320 may move in a direction adjacent to the fluid 300.

도 3d를 참조하면, 하나 이상의 입자(310, 320)의 위치가 유체(300) 내부에 해당하는지 여부를 결정할 수 있다(S5). 이는 하나 이상의 입자(310, 320)의 레벨 셋 값을 산출함으로써 수행될 수 있다. 격자 기반의 유체 시뮬레이션에 있어서 유체(300)의 표면에 대응되는 정점들은 0 레벨 셋으로 정의되며, 나머지 정점들은 유체(300) 표면까지의 거리에 따라 부호를 갖는 거리 함수로 표현되는 소정의 레벨 셋 값을 갖는다. 따라서, 하나 이상의 입자(310, 320)의 레벨 셋 값의 부호를 이용하여 각각의 입자(310, 320)의 위치가 유체(300) 내부인지 또는 외부인지를 결정할 수 있다. 예를 들어, 유체(300) 외부에 위치하는 입자(320)의 레벨 셋 값은 양수(+)이나, 유체(300) 내부에 위치하는 입자(310)의 레벨 셋 값은 음수(-)일 수 있다. Referring to FIG. 3D, it may be determined whether the positions of the one or more particles 310 and 320 correspond to the inside of the fluid 300 (S5). This can be done by calculating the level set values of one or more particles 310, 320. In the lattice-based fluid simulation, the vertices corresponding to the surface of the fluid 300 are defined as zero level sets, and the remaining vertices are a predetermined level set represented by a signed distance function according to the distance to the fluid 300 surface. Has a value. Thus, the sign of the level set value of one or more particles 310, 320 may be used to determine whether the location of each particle 310, 320 is inside or outside the fluid 300. For example, the level set value of the particles 320 located outside the fluid 300 may be positive (+), but the level set value of the particles 310 located inside the fluid 300 may be negative (−). have.

도 3e를 참조하면, 유체(300) 내부에 위치하는 입자(310)의 속도를 이용하여, 해당 입자(310)로부터 미리 결정된 거리(d) 내에 위치하며, 또한 유체(300) 내부에 위치하는 정점(vertex)의 속도값을 수정할 수 있다(S6). 예를 들어, 입자(310)의 속도를 입자(310)에 인접하여 위치하는 4개의 정점(330)에 분산하여 더할 수 있다. 이때, 각 정점(330)에 더해지는 속도값의 비율은 각 정점(330)으로부터 입자(310)까지의 거리에 비례하도록 결정될 수도 있다. 또한, 상기 미리 결정된 거리는 시뮬레이션하고자 하는 유체(300)의 점성 등 특징에 기초하여 적절히 결정될 수 있다. 다음으로, 도 3f를 참조하면, 유체(300) 내부에 위치하는 입자(310)를 삭제할 수 있다(S7). Referring to FIG. 3E, using the velocity of the particles 310 located inside the fluid 300, the vertices are located within a predetermined distance d from the particles 310 and also located inside the fluid 300. (vertex) can be modified (S6). For example, the velocity of the particles 310 may be added to four vertices 330 located adjacent to the particles 310. In this case, the ratio of the velocity value added to each vertex 330 may be determined to be proportional to the distance from each vertex 330 to the particle 310. In addition, the predetermined distance may be appropriately determined based on characteristics such as viscosity of the fluid 300 to be simulated. Next, referring to FIG. 3F, particles 310 located inside the fluid 300 may be deleted (S7).

도 3g를 참조하면, 수정된 각 정점의 속도값을 반영하여 격자의 속도 필드에 대한 유체 유동 시뮬레이션을 수행함으로써 갱신된 속도 필드를 산출할 수 있다(S8). 또한, 이와 같이 갱신된 속도 필드에 따라 유체(300)의 표면에 대응되는 0 레벨 셋을 이동시킬 수 있다. Referring to FIG. 3G, the updated velocity field may be calculated by performing a fluid flow simulation on the velocity field of the grating by reflecting the modified velocity value of each vertex (S8). In addition, the zero level set corresponding to the surface of the fluid 300 may be moved according to the updated velocity field.

도 3a 내지 3g를 참조하여 설명한 과정을 복수 개의 시간 단계의 진행에 따라 마지막 시간 단계까지 반복적으로 수행함으로써, 격자와 입자의 상호 작용을 반영하여 유체 유동 시뮬레이션 결과를 얻을 수 있다. 예컨대, 도 3h를 참조하면, 갱신된 속도 필드에 기초하여 하나 이상의 새로운 입자(340)를 생성할 수 있다(S2). By repeatedly performing the process described with reference to FIGS. 3A to 3G until the last time step as the progress of the plurality of time steps, the fluid flow simulation result can be obtained by reflecting the interaction between the lattice and the particles. For example, referring to FIG. 3H, one or more new particles 340 may be generated based on the updated velocity field (S2).

실시예들에 따른 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법은 도면에 제시된 순서도를 참조로 하여 설명되었다. 간단히 설명하기 위하여 상기 방법은 일련의 블록들로 도시되고 설명되었으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 다른 블록들과 본 명세서에서 도시되고 기술된 것과 상이한 순서로 또는 동시에 일어날 수도 있으며, 동일한 또는 유사한 결과를 달성하는 다양한 다른 분기, 흐름 경로, 및 블록의 순서들이 구현될 수 있다. 또한, 본 명세서에서 기술되는 방법의 구현을 위하여 도시된 모든 블록들이 요구되지 않을 수도 있다. Fluid simulation method using the interaction of the lattice and the particles according to the embodiments has been described with reference to the flowchart shown in the drawings. While the above method has been shown and described as a series of blocks for purposes of simplicity, it is to be understood that the invention is not limited to the order of the blocks, and that some blocks may be present in different orders and in different orders from that shown and described herein And various other branches, flow paths, and sequences of blocks that achieve the same or similar results may be implemented. Also, not all illustrated blocks may be required for implementation of the methods described herein.

나아가, 격자와 입자의 상호 작용을 이용한 유체 유동 시뮬레이션 방법은 일련의 과정들을 수행하기 위한 컴퓨터 프로그램의 형태로 구현될 수도 있으며, 상기 컴퓨터 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록될 수도 있다. Further, the fluid flow simulation method using the interaction of the lattice and the particles may be implemented in the form of a computer program for performing a series of processes, which may be recorded on a computer-readable recording medium.

이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.Although the present invention described above has been described with reference to the embodiments illustrated in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and variations may be made therefrom. However, such modifications should be considered to be within the technical protection scope of the present invention. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

Claims (8)

유체를 포함하는 계산 영역에 대응되며, 하나 이상의 정점을 포함하는 격자의 속도 필드를 복수 개의 시간 단계별로 산출하는 격자 시뮬레이션 모듈;
상기 각 시간 단계에서 상기 격자의 속도 필드에 기초하여 하나 이상의 입자를 생성하는 입자 생성 모듈;
상기 하나 이상의 입자의 위치 및 속도를 상기 복수 개의 시간 단계별로 산출하는 입자 시뮬레이션 모듈; 및
상기 각 시간 단계에서 상기 하나 이상의 입자의 레벨 셋 값을 산출함으로써 상기 하나 이상의 입자 중 상기 유체에 대응되는 영역에 위치하는 상기 입자를 결정하고, 상기 유체에 대응되는 영역에 위치하는 상기 입자의 속도를 이용하여 상기 격자의 속도 필드를 갱신하는 상호 작용 모듈을 포함하는 것을 특징으로 하는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템.
A grid simulation module corresponding to a calculation region including a fluid and calculating a velocity field of a grid including at least one vertex in a plurality of time steps;
A particle generation module for generating one or more particles based on the velocity field of the lattice in each time step;
A particle simulation module for calculating positions and velocities of the one or more particles in the plurality of time steps; And
The level set value of the at least one particle is calculated at each time step to determine the particles located in the area corresponding to the fluid among the at least one particle, and to determine the velocity of the particles located in the area corresponding to the fluid. And an interaction module for updating the velocity field of the grating using the fluid simulation system.
제 1항에 있어서,
상기 입자 생성 모듈은,
상기 각 시간 단계의 상기 격자의 속도 필드를 전 시간 단계의 상기 격자의 속도 필드와 비교하여 상기 격자의 가속도 필드를 산출하는 가속도 산출부; 및
상기 격자의 가속도 필드에 기초하여, 미리 결정된 문턱값 이상의 가속도 값을 갖는 상기 정점에 인접하여 상기 입자를 생성하는 입자 생성부를 포함하는 것을 특징으로 하는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템.
The method of claim 1,
The particle generation module,
An acceleration calculator configured to calculate an acceleration field of the grating by comparing the velocity field of the grating in each time step with the velocity field of the grating in all time steps; And
And a particle generation unit generating the particles adjacent to the vertex having an acceleration value equal to or greater than a predetermined threshold based on the acceleration field of the lattice.
제 1항에 있어서,
상기 상호 작용 모듈은,
상기 하나 이상의 입자 중 상기 유체에 대응되는 영역에 위치하는 상기 입자를 결정하는 위치 결정부;
상기 유체에 대응되는 영역에 위치하는 상기 입자의 속도를 이용하여, 상기 유체에 대응되는 영역에 위치하는 상기 입자로부터 미리 결정된 거리 내에 위치하며 상기 유체에 대응되는 영역 내에 위치하는 상기 정점의 속도값을 수정하는 속도 수정부; 및
상기 유체에 대응되는 영역에 위치하는 상기 입자를 삭제하는 입자 삭제부를 포함하는 것을 특징으로 하는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템.
The method of claim 1,
The interaction module,
A positioning unit to determine the particles located in a region corresponding to the fluid among the one or more particles;
By using the velocity of the particles located in the region corresponding to the fluid, the velocity value of the vertex located within a predetermined distance from the particles located in the region corresponding to the fluid and located in the region corresponding to the fluid Speed correction; And
And a particle deletion unit for deleting the particles located in the region corresponding to the fluid.
제 1항에 있어서,
상기 입자 생성 모듈은, 상기 각 시간 단계에서 상기 상호 작용 모듈에 의해 수정된 상기 격자의 속도 필드에 기초하여 후속하는 시간 단계에서 상기 입자를 생성하는 것을 특징으로 하는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 시스템.
The method of claim 1,
The particle generation module generates the particles in a subsequent time step based on the velocity field of the lattice modified by the interaction module in each time step. Simulation system.
유체를 포함하는 계산 영역에 대응되며, 하나 이상의 정점을 포함하는 격자의 속도 필드를 복수 개의 시간 단계별로 산출하는 단계;
상기 각 시간 단계에서 상기 격자의 속도 필드에 기초하여 하나 이상의 입자를 생성하는 단계;
상기 하나 이상의 입자의 위치 및 속도를 상기 복수 개의 시간 단계별로 산출하는 단계;
상기 각 시간 단계에서 상기 하나 이상의 입자의 레벨 셋 값을 산출함으로써 상기 하나 이상의 입자 중 상기 유체에 대응되는 영역에 위치하는 상기 입자를 결정하는 단계; 및
상기 유체에 대응되는 영역에 위치하는 상기 입자의 속도를 이용하여 상기 격자의 속도 필드를 갱신하는 단계를 포함하는 것을 특징으로 하는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법.
Calculating a velocity field of a grid corresponding to a calculation region including a fluid and including one or more vertices in a plurality of time steps;
Generating at least one particle based on the velocity field of the grating in each time step;
Calculating positions and velocities of the one or more particles in the plurality of time steps;
Determining the particle located in a region corresponding to the fluid among the one or more particles by calculating a level set value of the one or more particles in each time step; And
And updating the velocity field of the lattice by using the velocity of the particles located in the region corresponding to the fluid.
제 5항에 있어서,
상기 하나 이상의 입자를 생성하는 단계는,
상기 각 시간 단계의 상기 격자의 속도 필드를 전 시간 단계의 상기 격자의 속도 필드와 비교하여 상기 격자의 가속도 필드를 산출하는 단계; 및
상기 격자의 가속도 필드에 기초하여, 미리 결정된 문턱값 이상의 가속도 값을 갖는 상기 정점에 인접하여 상기 입자를 생성하는 단계를 포함하는 것을 특징으로 하는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법.
6. The method of claim 5,
Generating the one or more particles,
Calculating an acceleration field of the grid by comparing the velocity field of the grid in each time step with the velocity field of the grid in a previous time step; And
And generating the particles based on the acceleration field of the grating, adjacent the vertices having an acceleration value equal to or greater than a predetermined threshold.
제 5항에 있어서,
상기 격자의 속도 필드를 갱신하는 단계는,
상기 유체에 대응되는 영역에 위치하는 상기 입자의 속도를 이용하여, 상기 유체에 대응되는 영역에 위치하는 상기 입자로부터 미리 결정된 거리 내에 위치하며 상기 유체에 대응되는 영역 내에 위치하는 상기 정점의 속도값을 수정하는 단계; 및
상기 유체에 대응되는 영역에 위치하는 상기 입자를 삭제하는 단계를 포함하는 것을 특징으로 하는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법.
6. The method of claim 5,
Updating the velocity field of the grid,
By using the velocity of the particles located in the region corresponding to the fluid, the velocity value of the vertex located within a predetermined distance from the particles located in the region corresponding to the fluid and located in the region corresponding to the fluid Modifying; And
And deleting the particles located in a region corresponding to the fluid.
제 5항에 있어서,
상기 하나 이상의 입자를 생성하는 단계는, 상기 각 시간 단계에서, 전 시간 단계에서 갱신된 상기 격자의 속도 필드에 기초하여 상기 입자를 생성하는 단계를 포함하는 것을 특징으로 하는 격자와 입자의 상호 작용을 이용한 유체 시뮬레이션 방법.
6. The method of claim 5,
Generating the one or more particles comprises generating the particles at each time step based on the velocity field of the grating updated at all time steps. Fluid simulation method.
KR1020110019295A 2011-03-04 2011-03-04 System and method for fluid simulation using interaction between grid and particle KR101244826B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110019295A KR101244826B1 (en) 2011-03-04 2011-03-04 System and method for fluid simulation using interaction between grid and particle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110019295A KR101244826B1 (en) 2011-03-04 2011-03-04 System and method for fluid simulation using interaction between grid and particle

Publications (2)

Publication Number Publication Date
KR20120100419A KR20120100419A (en) 2012-09-12
KR101244826B1 true KR101244826B1 (en) 2013-03-19

Family

ID=47110160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110019295A KR101244826B1 (en) 2011-03-04 2011-03-04 System and method for fluid simulation using interaction between grid and particle

Country Status (1)

Country Link
KR (1) KR101244826B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101514806B1 (en) * 2014-01-20 2015-04-24 동국대학교 산학협력단 Method and apparatus of fluid simulation
US9953109B2 (en) 2014-08-26 2018-04-24 Samsung Electronics Co., Ltd. Object modeling method and apparatus
US10572609B2 (en) 2014-11-13 2020-02-25 Samsung Electronics Co., Ltd. Method and apparatus to model objects including particles
US10606966B2 (en) 2014-08-26 2020-03-31 Samsung Electronics Co., Ltd. Method and apparatus for modeling deformable body including particles

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102255188B1 (en) * 2014-10-13 2021-05-24 삼성전자주식회사 Modeling method and modeling apparatus of target object to represent smooth silhouette
KR20170052144A (en) 2015-11-04 2017-05-12 삼성전자주식회사 Rendering method and apparatus of target fluid
KR102026153B1 (en) * 2019-05-22 2019-09-27 서울대학교산학협력단 The method for numerical simulation of advection-diffusion of blue-green algae using multi-scale model including agent-based model
KR102181979B1 (en) * 2019-12-13 2020-11-23 이에이트 주식회사 Apparatus, method and computer program for sph based fluid analysis simulation
KR102181981B1 (en) * 2019-12-13 2020-11-23 이에이트 주식회사 Apparatus, method and computer program for sph based fluid analysis simulation
KR102436658B1 (en) * 2020-07-23 2022-08-26 이에이트 주식회사 Fluid analysis simulation method and fluid simulation apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100588000B1 (en) 2004-12-13 2006-06-08 한국전자통신연구원 Apparatus and method for capturing free surface of fluid in computer animation
KR20060090494A (en) * 2005-02-07 2006-08-11 삼성전자주식회사 Method for physical simulation, method for producing 3d graphic and apparatus thereof
KR100972624B1 (en) * 2009-02-11 2010-07-27 고려대학교 산학협력단 Apparatus and method for simulating multiphase fluids

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100588000B1 (en) 2004-12-13 2006-06-08 한국전자통신연구원 Apparatus and method for capturing free surface of fluid in computer animation
KR20060090494A (en) * 2005-02-07 2006-08-11 삼성전자주식회사 Method for physical simulation, method for producing 3d graphic and apparatus thereof
KR100972624B1 (en) * 2009-02-11 2010-07-27 고려대학교 산학협력단 Apparatus and method for simulating multiphase fluids

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101514806B1 (en) * 2014-01-20 2015-04-24 동국대학교 산학협력단 Method and apparatus of fluid simulation
US9953109B2 (en) 2014-08-26 2018-04-24 Samsung Electronics Co., Ltd. Object modeling method and apparatus
US10606966B2 (en) 2014-08-26 2020-03-31 Samsung Electronics Co., Ltd. Method and apparatus for modeling deformable body including particles
US10572609B2 (en) 2014-11-13 2020-02-25 Samsung Electronics Co., Ltd. Method and apparatus to model objects including particles

Also Published As

Publication number Publication date
KR20120100419A (en) 2012-09-12

Similar Documents

Publication Publication Date Title
KR101244826B1 (en) System and method for fluid simulation using interaction between grid and particle
KR101214903B1 (en) System and method for fluid simulation using interaction between particles
JP7133894B2 (en) Data-driven interactive 3D experience
Idelsohn et al. A fast and accurate method to solve the incompressible Navier‐Stokes equations
Murotani et al. Development of hierarchical domain decomposition explicit MPS method and application to large-scale tsunami analysis with floating objects
JP5209298B2 (en) Flow simulation calculation method and system
KR100984048B1 (en) An effective method to solve rigid body interactions in particle based fluid simulations
US10311180B2 (en) System and method of recovering Lagrange multipliers in modal dynamic analysis
KR100588000B1 (en) Apparatus and method for capturing free surface of fluid in computer animation
KR101170909B1 (en) System and method for fluid simulation using moving grid
KR101909383B1 (en) Modelling method of solid wall boundary condition in compressible boltzmann method
KR101110342B1 (en) System and method for shape controllable fluid simulation
US10248766B2 (en) Simulation method and analyzing device
JP2014206520A (en) Tire wear simulation method and tire wear simulation program
CN113204911A (en) Fluid-solid coupling simulation method and system for trailing edge deflection process of ram parafoil
Harwood et al. Numerical evaluation of the compact acoustic Green’s function for scattering problems
Qin et al. A 3D nonhydrostatic compressible atmospheric dynamic core by multi-moment constrained finite volume method
JP6327927B2 (en) Simulation device, model generation device, simulation method, model generation method, and computer program
CN104508667A (en) Method for simulating a set of elements, and associated computer program
Junior et al. PolyMPS—An open source CFD solver based on Polygon walls in Moving Particle Semi-implicit (MPS) method
Jørgensen et al. Implementation of a turbulent inflow boundary condition for LES based on a vortex method
Amann et al. Integral porosity shallow water model at district scale-Case study in Nice
Hao et al. Object Proposal with Modified Edge Boxes Based on Visual Saliency
KR20220078309A (en) Nonlinear Finite Element Analysis Method for the Evaluation of Cell Migration
Arregui Bravo Approximate Dirichlet boundary conditions in time-evolving physical domains

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190311

Year of fee payment: 7