KR101809010B1 - System and method for analyzing openfoam - Google Patents
System and method for analyzing openfoam Download PDFInfo
- Publication number
- KR101809010B1 KR101809010B1 KR1020160116391A KR20160116391A KR101809010B1 KR 101809010 B1 KR101809010 B1 KR 101809010B1 KR 1020160116391 A KR1020160116391 A KR 1020160116391A KR 20160116391 A KR20160116391 A KR 20160116391A KR 101809010 B1 KR101809010 B1 KR 101809010B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- value
- term
- grid
- numerical instability
- Prior art date
Links
Images
Classifications
-
- G06F17/5009—
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
본 발명의 실시예들은 유동 해석을 위한 오픈폼(OpenFOAM)의 행렬을 분석하기 위한 기술과 관련된다.Embodiments of the present invention relate to techniques for analyzing a matrix of OpenFOAM for flow analysis.
오픈폼(OpenFOAM : Open Field Operation And Manipulation)은 유동 해석 라이브러리로서, C++ 프로그래밍 언어로 만들어진 소스가 공개되어 누구나 사용 가능하다. 상기 오픈폼은 기능성 및 확장성에 있어서 상용 유동 해석 프로그램에 준하거나 더 우수하기 때문에 다수의 연구 기관 및 산업체에서 많이 활용되고 있다. 이러한 오픈폼은 해석 공간을 나타내는 격자(grid)와 유동의 특성(밀도, 점성 등), 계산 조건(차분 기법, 경계 조건, 초기 조건, 계산 시간 간격 등), 난류 모델 등과 같은 설정 조건을 기반으로 유동의 속도, 압력, 온도 등을 계산하기 위한 다원의 1차 방정식의 행렬을 생성하고, 상기 오픈폼에서 제공되는 행렬 솔버(matrix solver)를 이용하여 상기 행렬의 해를 계산함으로써 구하고자 하는 유동의 속도, 압력, 온도, 밀도 등을 획득하게 된다.OpenFOAM (Open Field Operation and Manipulation) is a library of flow analysis, made available in C ++ programming language and available to anyone. Since the open foam is superior to or better than a commercial flow analysis program in terms of functionality and expandability, it is widely used in a large number of research institutes and industries. These open forms are based on setting conditions such as grid and flow characteristics (density, viscosity, etc.), calculation conditions (difference technique, boundary condition, initial condition, calculation time interval, etc.) A matrix of a plurality of linear equations for calculating the velocity, pressure, temperature and the like of the flow is generated and the solution of the matrix to be obtained is calculated by using the matrix solver provided in the open form, Speed, pressure, temperature, and density.
그러나, 종래에는 상기 행렬이 수치적으로 불안정하여 비물리적인 속도, 압력 등이 발생하는 경우(예를 들어, 속도가 몇 억 또는 몇 십억 m/s가 되거나 압력이 몇 천만 기압이 되는 등), 이를 해결하기 위한 기능이 존재하지 않아 사용자가 직접 상기 행렬의 수치적 불안정성에 대한 원인을 분석하여야 하였으며 이를 위해서는 매우 복잡한 오픈폼의 소스 코드 및 구조에 대한 이해와 더불어 높은 수준의 수치 해석 지식이 필요하였다. 따라서, 사용자들은 이러한 어려움으로 인해 오픈폼 상에서의 행렬의 수치적 불안정성에 대해 적극적으로 대응하지 못하고 있는 실정이다.However, in the past, when the matrix is numerically unstable and a non-physical velocity, pressure, or the like is generated (for example, the velocity is several hundred million or several billion m / s or the pressure is several million atmospheric pressure) Since there is no function to solve this problem, the user must directly analyze the cause of the numerical instability of the matrix. In order to do this, it is necessary to understand the source code and structure of a very complicated open form, . Therefore, users are not actively responding to the numerical instability of the matrix on the open form due to these difficulties.
본 발명의 실시예들은 오픈폼의 행렬을 분석하여 상기 행렬의 수치적 불안정성을 개선하는 수단을 제공하기 위한 것이다.Embodiments of the present invention are intended to provide a means for analyzing a matrix of open forms to improve the numerical instability of the matrix.
본 발명의 예시적인 실시예에 따르면, 오픈폼(OpenFOAM : Open Field Operation And Manipulation) 상에서의 격자(grid) 및 설정 조건을 기반으로 생성되는 다원 방정식에 대한 행렬을 분석하여 상기 행렬의 수치적 불안정성을 야기하는 위험 격자를 결정하는 행렬 분석부; 상기 수치적 불안정성이 개선되도록 상기 위험 격자의 행렬 값을 변경하는 행렬 값 변경부; 및 변경된 상기 행렬 값을 이용하여 상기 행렬의 해를 계산하는 계산부를 포함하는, 오픈폼 분석 시스템이 제공된다.According to an exemplary embodiment of the present invention, a matrix for a polygonal equation generated based on a grid and a setting condition on an Open Field Operation and Manipulation (OpenFOAM) is analyzed to determine the numerical instability of the matrix A matrix analyzer for determining a critical grid to cause; A matrix value changing unit for changing a matrix value of the critical grid to improve the numerical instability; And a calculation unit for calculating the solution of the matrix using the changed matrix value.
상기 행렬 분석부는, 상기 행렬의 요소를 분석하여 상기 위험 격자의 수치적 불안정성의 요인을 판단할 수 있다.The matrix analyzing unit may analyze factors of the matrix to determine factors of the numerical instability of the critical grid.
상기 행렬 분석부는, 대각 행렬(diagPtr_)의 값이 설정된 값 이하이거나 음수인 격자, 소스 행렬(source_)의 값이 설정된 값 이상인 격자, 또는 설정된 값 이상의 종횡비로 인해 특정 방향으로 플럭스(flux)가 증가하는 격자를 상기 위험 격자로 결정할 수 있다.The matrix analyzing unit may be configured such that a matrix having a value of a diagonal matrix diagPtr_ is less than or equal to a predetermined value, a lattice of a negative number, a lattice of which a value of a source matrix source_ is greater than or equal to a predetermined value, Can be determined as the above-mentioned critical grid.
상기 행렬 값 변경부는, 상기 수치적 불안정성이 비정상항에 기인한 것으로 판단되는 경우 상기 행렬의 인자에 적용되는 계산 시간 간격(△t)을 감소시킴으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.The matrix value changing unit may change the matrix value of the critical grid by decreasing the computation time interval? T applied to the factor of the matrix when the numerical instability is determined to be caused by the abnormal term.
상기 행렬 값 변경부는, 상기 수치적 불안정성이 대류항에 기인한 것으로 판단되는 경우 상기 대류항에 내재적 모멘텀 소스항을 추가함으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.The matrix value changing unit may change the matrix value of the critical grid by adding an implicit momentum source term to the convection term if it is determined that the numerical instability is due to the convection term.
상기 행렬 값 변경부는, 상기 수치적 불안정성이 압력구배항에 기인한 것으로 판단되는 경우 상기 압력구배항에 모멘텀 싱크항을 추가함으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.The matrix value changing unit may change the matrix value of the critical grid by adding a momentum sink term to the pressure gradient term when it is determined that the numerical instability is due to the pressure gradient term.
상기 행렬 값 변경부는, 상기 수치적 불안정성이 확산항에 기인한 것으로 판단되는 경우 상기 확산항에 인위적 점성항을 추가함으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.The matrix value changing unit may change the matrix value of the critical grid by adding an artificial viscous term to the diffusion term when it is determined that the numerical instability is due to a diffusion term.
상기 행렬 값 변경부는, 상기 대각 행렬의 값의 크기를 증가시킴으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.The matrix value changing unit may change the matrix value of the critical grid by increasing the value of the diagonal matrix.
상기 오픈폼 분석 시스템은, 상기 위험 격자의 격자 형태, 속도, 압력, 온도 및 밀도 중 하나 이상을 가시화하여 사용자에게 제공하는 사용자 인터페이스(UI : User Interface)를 더 포함할 수 있다.The open-form analysis system may further include a user interface (UI) that provides at least one of a lattice shape, a velocity, a pressure, a temperature, and a density of the hazardous grid to a user.
본 발명의 다른 예시적인 실시예에 따르면, 행렬 분석부에서, 오픈폼(OpenFOAM) 상에서의 격자(grid) 및 설정 조건을 기반으로 생성되는 다원 방정식에 대한 행렬을 분석하여 상기 행렬의 수치적 불안정성을 야기하는 위험 격자를 결정하는 단계; 행렬 값 변경부에서, 상기 수치적 불안정성이 개선되도록 상기 위험 격자의 행렬 값을 변경하는 단계; 및 계산부에서, 변경된 상기 행렬 값을 이용하여 상기 행렬의 해를 계산하는 단계를 포함하는, 오픈폼 분석 방법이 제공된다.According to another exemplary embodiment of the present invention, a matrix analyzing unit analyzes a matrix of a polygonal equation generated based on a grid and a setting condition on an open form (OpenFOAM) to determine the numerical instability of the matrix Determining a risk grid to cause; Changing a matrix value of the critical grid so that the numerical instability is improved; And calculating a solution of the matrix using the modified matrix value in a calculation unit.
상기 오픈폼 분석 방법은, 상기 위험 격자를 결정하는 단계 이후, 상기 행렬 분석부에서, 상기 행렬의 요소를 분석하여 상기 위험 격자의 수치적 불안정성의 요인을 판단하는 단계를 더 포함할 수 있다.The open-form analysis method may further include a step of determining factors of numerical instability of the hazardous lattice by analyzing the elements of the matrix in the matrix analysis unit after the determining of the dangerous lattice.
상기 위험 격자를 결정하는 단계는, 대각 행렬(diagPtr_)의 값이 설정된 값 이하이거나 음수인 격자, 소스 행렬(source_)의 값이 설정된 값 이상인 격자, 또는 설정된 값 이상의 종횡비로 인해 특정 방향으로 플럭스(flux)가 증가하는 격자를 상기 위험 격자로 결정할 수 있다. The step of determining the critical grid may include determining whether the value of the diagonal matrix diagPtr_ is less than or equal to a predetermined value, a grid having a negative value, a grid having a value of the source matrix source_ equal to or greater than a predetermined value, flux is increased can be determined as the critical grid.
상기 위험 격자의 행렬 값을 변경하는 단계는, 상기 수치적 불안정성이 비정상항에 기인한 것으로 판단되는 경우 상기 행렬의 인자에 적용되는 계산 시간 간격(△t)을 감소시킴으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.Wherein the step of changing the matrix value of the critical grid further comprises the step of decreasing the computation time interval? T applied to the factor of the matrix when the numerical instability is determined to be due to an abnormal term, Can be changed.
상기 위험 격자의 행렬 값을 변경하는 단계는, 상기 수치적 불안정성이 대류항에 기인한 것으로 판단되는 경우 상기 대류항에 내재적 모멘텀 소스항을 추가함으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.The step of changing the matrix value of the critical grid may change the matrix value of the critical grid by adding an implicit momentum source term to the convective term if the numerical instability is determined to be due to the convection term.
상기 위험 격자의 행렬 값을 변경하는 단계는, 상기 수치적 불안정성이 압력구배항에 기인한 것으로 판단되는 경우 상기 압력구배항에 모멘텀 싱크항을 추가함으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.The step of changing the matrix value of the critical grid may change the matrix value of the critical grid by adding a momentum sink term to the pressure gradient term if it is determined that the numerical instability is due to the pressure gradient term.
상기 위험 격자의 행렬 값을 변경하는 단계는, 상기 수치적 불안정성이 확산항에 기인한 것으로 판단되는 경우 상기 확산항에 인위적 점성항을 추가함으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.Wherein changing the matrix value of the critical grid may change the matrix value of the critical grid by adding an artificial viscous term to the diffusion term if the numerical instability is determined to be due to a diffusion term.
상기 위험 격자의 행렬 값을 변경하는 단계는, 상기 대각 행렬의 값의 크기를 증가시킴으로써 상기 위험 격자의 행렬 값을 변경할 수 있다.The step of changing the matrix value of the critical grid may change the matrix value of the critical grid by increasing the size of the value of the diagonal matrix.
상기 오픈폼 분석 방법은, 상기 위험 격자를 결정하는 단계 이후, 사용자 인터페이스에서, 상기 위험 격자의 격자 형태, 속도, 압력, 온도 및 밀도 중 하나 이상을 가시화하여 사용자에게 제공하는 단계를 더 포함할 수 있다.The open-form analysis method may further include visualizing at least one of a lattice form, a velocity, a pressure, a temperature and a density of the hazardous grid in a user interface and providing the user with a visualized result have.
본 발명의 다른 예시적인 실시예에 따르면, 하드웨어와 결합되어 행렬 분석부에서, 오픈폼(OpenFOAM) 상에서의 격자(grid) 및 설정 조건을 기반으로 생성되는 다원 방정식에 대한 행렬을 분석하여 상기 행렬의 수치적 불안정성을 야기하는 위험 격자를 결정하는 단계; 행렬 값 변경부에서, 상기 수치적 불안정성이 개선되도록 상기 위험 격자의 행렬 값을 변경하는 단계; 및 계산부에서, 변경된 상기 행렬 값을 이용하여 상기 행렬의 해를 계산하는 단계를 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램이 제공된다.According to another exemplary embodiment of the present invention, a matrix analysis unit analyzes a matrix of a plurality of equations generated based on a grid on an open form (OpenFOAM) and a set condition in combination with hardware, Determining a risk lattice that causes numerical instability; Changing a matrix value of the critical grid so that the numerical instability is improved; And calculating a solution of the matrix using the modified matrix value in a calculation unit.
본 발명의 실시예들에 따르면, 오픈폼의 행렬을 분석하여 행렬의 수치적 불안정성을 야기하는 위험 격자를 결정하고, 상기 수치적 불안정성의 요인을 판단할 수 있다.According to embodiments of the present invention, it is possible to determine the risk lattice that causes the numerical instability of the matrix by analyzing the matrix of the open form, and to determine the factor of the numerical instability.
또한, 본 발명의 실시예들에 따르면, 상기 수치적 불안정성이 개선되도록 상기 위험 격자의 행렬 값을 변경할 수 있다. 이 경우, 사용자는 매우 복잡한 오픈폼의 소스 코드 및 구조를 모두 이해할 필요가 없으며 높은 수준의 수치 해석 지식 또한 불필요하다. 이에 따라, 사용자들은 상기 수치적 불안정성에 대해 적극적으로 대응할 수 있게 된다.According to embodiments of the present invention, the matrix value of the critical grid can be changed so that the numerical instability is improved. In this case, the user does not have to understand all the source code and structure of the highly complex open forms, and the knowledge of high level numerical analysis is also unnecessary. Thus, users can positively respond to the numerical instability.
도 1은 본 발명의 일 실시예에 따른 오픈폼 분석 시스템의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 유동의 예시
도 3은 본 발명의 일 실시예에 따른 격자의 예시
도 4는 도 3의 격자들 중 위험 격자를 나타낸 예시
도 5는 본 발명의 일 실시예에 따른 수치적 불안정성의 요인을 판단하는 과정을 설명하기 위한 예시
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 7은 본 발명의 일 실시예에 따른 오픈폼 분석 방법을 설명하기 위한 흐름도1 is a block diagram showing a detailed configuration of an open form analysis system according to an embodiment of the present invention;
Figure 2 is an illustration of a flow according to one embodiment of the present invention
Figure 3 is an illustration of a lattice according to an embodiment of the present invention
4 is a graph showing an example of a critical grid among the grids shown in FIG.
5 is a graph illustrating an example of a process for determining a factor of numerical instability according to an embodiment of the present invention.
Figure 6 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in the exemplary embodiments.
7 is a flowchart illustrating an open form analysis method according to an embodiment of the present invention.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular form of a term includes plural forms of meaning. In this description, the expressions "comprising" or "comprising" are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.
도 1은 본 발명의 일 실시예에 따른 오픈폼 분석 시스템(100)의 상세 구성을 나타낸 블록도이다. 본 발명의 일 실시예에 따른 오픈폼 분석 시스템(100)은 오픈폼(OpenFOAM : Open Field Operation And Manipulation)에서 생성되는 행렬을 분석하여 상기 행렬의 수치적 불안정성을 개선하는 시스템으로서, 상기 오픈폼 상에 탑재되거나 또는 상기 오픈폼 외부에서 상기 오픈폼과 연동하여 동작할 수 있다.1 is a block diagram showing a detailed configuration of an open
오픈폼(OpenFOAM)은 유동 해석 라이브러리로서, C++ 프로그래밍 언어로 만들어진 소스가 공개되어 누구나 사용 가능하다. 일반적으로, 오픈폼은 해석 공간을 나타내는 격자(grid)와 각종 설정 조건을 기반으로 유동(또는 유체)의 속도, 압력, 온도 등을 계산하기 위한 다원의 1차 방정식의 행렬을 생성하고, 상기 오픈폼에서 제공되는 행렬 솔버(matrix solver)를 이용하여 상기 행렬의 해를 계산함으로써 구하고자 하는 유동의 속도, 압력, 온도, 밀도 등을 획득하게 된다. 여기서, 격자는 유동 해석을 위한 해석 공간을 수만 개 내지 수천만 개로 나누어 표기한 가상의 유한 체적으로서, 오픈폼 자체에서 생성되거나 외부에서 파일 형태로 로딩될 수 있다. 또한, 설정 조건은 유동의 특정 물리량(예를 들어, 유동의 속도, 압력, 온도 등)을 계산하기 위해 사전에 설정되는 각종 조건으로서, 예를 들어 유동의 특성(밀도, 점성 등), 계산 조건(차분 기법, 경계 조건, 초기 조건, 계산 시간 간격 등), 난류 모델 등이 될 수 있다. 오픈폼은 상기 격자 및 설정 조건을 기반으로 시간 차분 기법(time discretization scheme), 구배 차분 기법(gradient scheme), 격자 중심 간 거리 계산 기법 (interpolation scheme) 등을 이용하여 다원의 1차 방정식의 행렬을 생성하게 된다. 이때, 상기 행렬의 행 및 열의 개수(또는 다원 1차 방정식의 개수)는 격자의 수 및 구하고자 하는 물리량의 변수 개수에 따라 달라질 수 있다. 일 예시로서, 격자의 수가 1만개이고 구하고자 하는 유동의 물리량이 3차원 속도(x, y, z 방향의 속도, 변수 3개) 및 압력(변수 1개)인 경우(즉, 총 변수 4개) 4만 Ⅹ 4만 개의 정방 행렬이 도출될 수 있다. 이 경우, 4만 개의 개별 변수를 갖는 1차 방정식이 4만 개가 생성될 수 있다. 그러나, 종래에는 상기 행렬이 수치적으로 불안정하여 비물리적인 속도, 압력 등이 발생하는 경우(예를 들어, 속도가 몇 억 또는 몇 십억 m/s가 되거나 압력이 몇 천만 기압이 되는 등), 이를 해결하기 위한 기능이 존재하지 않아 사용자가 직접 상기 행렬의 수치적 불안정성에 대한 원인을 분석하여야 하였으며 이를 위해서는 매우 복잡한 오픈폼의 소스 코드 및 구조에 대한 이해와 더불어 높은 수준의 수치 해석 지식이 필요하였다. OpenFOAM is a fluid analysis library, available in C ++ programming language and open to anyone. Generally, an open form generates a matrix of multiple linear equations for calculating the velocity, pressure, temperature, etc. of a flow (or fluid) based on a grid representing an analysis space and various setting conditions, The velocity, pressure, temperature, density, etc. of the flow to be obtained are obtained by calculating the solution of the matrix using a matrix solver provided in the form. Here, the lattice is an imaginary finite volume expressed as tens of thousands to tens of millions of analysis spaces for the flow analysis, and can be generated in the open form itself or loaded in a file form from the outside. The setting conditions are various conditions that are set in advance to calculate a specific physical quantity (e.g., flow velocity, pressure, temperature, etc.) of the flow. For example, (Difference technique, boundary condition, initial condition, calculation time interval, etc.), and turbulence model. The open form uses a time discretization scheme, a gradient scheme, and an interpolation scheme based on the grid and setting conditions to calculate a matrix of plural linear equations Respectively. At this time, the number of rows and columns (or the number of first-order linear equations) of the matrix may vary depending on the number of gratings and the number of variables of the physical quantity to be obtained. As an example, if the number of grids is 10,000 and the physical quantity to be obtained is three-dimensional velocity (velocity in x, y, z direction, three variables) and pressure (one variable) ) 40,000 x 40,000 square matrices can be derived. In this case, 40,000 linear equations with 40,000 individual variables can be generated. However, in the past, when the matrix is numerically unstable and a non-physical velocity, pressure, or the like is generated (for example, the velocity is several hundred million or several billion m / s or the pressure is several million atmospheric pressure) Since there is no function to solve this problem, the user must directly analyze the cause of the numerical instability of the matrix. In order to do this, it is necessary to understand the source code and structure of a very complicated open form, .
본 발명의 실시예들은 이러한 행렬의 수치적 불안정성을 자동으로 개선하는 시스템에 관한 것으로, 본 실시예들에 있어서 수치적 불안정성(numerical instability)이란 행렬의 수치적 요인으로 인해 상기 행렬의 해를 구하는 데 있어서 심각한 오차가 발생하거나 실제 결과와 전혀 다른 부정확한 결과를 일으키는 현상을 의미한다. 이하에서는 이러한 수치적 불안정성을 개선하기 위한 오픈폼 분석 시스템(100)의 상세 구성에 대해 자세히 살펴보기로 한다.Embodiments of the present invention are directed to a system that automatically improves the numerical instability of such a matrix, where numerical instability is used to solve the matrix due to the numerical factors of the matrix Which means that there is a serious error or an inaccurate result which is completely different from the actual result. Hereinafter, the detailed configuration of the open-
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 오픈폼 분석 시스템(100)은 행렬 분석부(102), 행렬 값 변경부(104), 계산부(106) 및 그래픽 사용자 인터페이스(UI : User Interface, 108)를 포함한다.1, an open
행렬 분석부(102)는 오픈폼(OpenFOAM) 상에서의 격자(grid) 및 설정 조건을 기반으로 생성되는 다원 방정식에 대한 행렬을 분석하여 상기 행렬의 수치적 불안정성을 야기하는 위험 격자를 결정한다. 상기 행렬은 수치 해석의 효율성을 위해 대각 행렬(diagPtr_), 상삼각행렬(upperPtr_), 하삼각행렬(lowerPtr_), 경계 조건에서 발생하는 내재적 행렬 인자를 저장하기 위한 행렬(internalCoef_), 경계 조건에서 발생하는 외재적 소스항을 저장하기 위한 행렬(boundaryCoef_), 소스 행렬(source_) 등으로 구성되며, 오픈폼은 상기 행렬을 상술한 구성 요소들로 구분하여 제공할 수 있다. 대각 행렬(diagPtr_)은 N Ⅹ N 정방 행렬에서 대각 성분만을 추출한 것으로 각 격자가 스스로에게 미치는 영향을 수치화하여 나타낸 행렬이다. 상삼각행렬(upperPtr_) 및 하삼각행렬(lowerPtr_)은 인접한 격자가 자신에게 미치는 영향을 수치화하여 나타낸 행렬로서, 상삼각행렬(upperPtr_) 및 하삼각행렬(lowerPtr_)의 물리적 의미는 동일하며 수치적 효율성을 위해 구분된다. 경계 조건에서 발생하는 내재적 행렬 인자를 저장하기 위한 행렬(internalCoef_) 및 경계 조건에서 발생하는 외재적 소스항을 저장하기 위한 행렬(boundaryCoef_)은 경계 조건에 따라 유동에 미치는 영향을 수치화하여 나타낸 행렬이다. 소스 행렬(source_)은 각 격자에서 이전 속도의 영향과 외부에서 가해지는 힘에 의한 영향을 수치화하여 나타낸 행렬이다. 행렬 분석부(102)는 상기 행렬의 구성 요소들(즉, diagPtr_, upperPtr_, lowerPtr_, internalCoef_, boundaryCoef_, source_ 등)을 분석하여 상기 행렬의 수치적 불안정성을 야기하는 위험 격자를 결정할 수 있다. The
일 예시로서, 행렬 분석부(102)는 대각 행렬(diagPtr_)의 값이 설정된 값 이하이거나(또는 다른 행렬 요소의 값에 비해 설정된 값 이상 작거나) 음수인 격자를 위험 격자로 결정할 수 있다. 대각 행렬(diagPtr_)은 각 격자가 질량이나 운동량 등을 보존하기 위해 스스로에게 미치는 영향을 수치화하여 나타낸 행렬로서, 일반적으로 각 격자가 스스로에게 미치는 영향은 인접한 격자가 자신에게 미치는 영향보다 커야 수치적으로 안정한 것으로 볼 수 있다. 그러나, 일 격자에 대한 대각 행렬(diagPtr_)의 값이 설정된 값 이하이거나 음수가 되는 경우, 상기 격자에 힘을 가하여도 상기 힘과 반대 방향으로 움직인다던가, 상기 격자가 인접한 격자에서 발생한 조그만 오차에 매우 민감하게 작용하는 것으로 해석될 수 있다. 따라서, 이 경우 행렬 분석부(102)는 해당 격자를 행렬의 수치적 불안정성을 야기하는 위험 격자로 결정할 수 있다.As an example, the
다른 예시로서, 행렬 분석부(102)는 소스 행렬(source_)의 값이 설정된 값 이상인 격자를 위험 격자로 결정할 수 있다. 일반적으로, 유동의 특성 상 특정 지점이 주변 지점에 비해 속도나 압력 등이 월등히 높을 수 없다. 그러나, 소스 행렬(source_)의 값이 설정된 값 이상으로 크게 나타나는 경우, 행렬 분석부(102)는 해당 격자를 행렬의 수치적 불안정성을 야기하는 위험 격자로 결정할 수 있다.As another example, the
다른 예시로서, 행렬 분석부(102)는 설정된 값 이상의 종횡비로 인해 특정 방향으로 플럭스(flux)가 증가하는 격자를 위험 격자로 결정할 수 있다. 일반적으로, 격자의 종횡비가 설정된 값 이상으로 크다는 것은 방향에 따라 격자의 면적 차이가 크다는 의미이므로, 면적이 큰 곳에서 발생한 오차가 면적이 작은 곳에서 더욱 증폭될 가능성이 있다. 따라서, 이 경우 행렬 분석부(102)는 해당 격자를 행렬의 수치적 불안정성을 야기하는 위험 격자로 결정할 수 있다.As another example, the
이와 같이, 행렬 분석부(102)는 다양한 방법들을 이용하여 상기 행렬의 수치적 불안정성을 야기하는 위험 격자를 결정할 수 있다. 다만, 상술한 위험 격자를 결정하는 방법들이 상술한 실시예들에 한정되는 것은 아니다.Thus, the
또한, 행렬 분석부(102)는 상술한 방법들에 따라 위험 격자가 결정되는 경우 상기 행렬의 요소를 분석하여 위험 격자의 수치적 불안정성의 요인을 판단할 수 있다. 일반적으로, 오픈폼 상에서의 행렬 요소는 비정상항(unsteady term), 대류항(convective term), 압력구배항(pressure gradient term), 확산항(diffusion term)의 시간/공간 차분으로 결정된다. 미분 방정식으로 표현된 연속 방정식을 컴퓨터 상에서 해석하기 위해서는 각 격자점으로 구분된 이산 방정식으로 표현하여야 한다. 이와 같이 연속 미분 방정식을 이산 방정식으로 표현하는 것을 차분이라 하며, 상기 연속 미분 방정식을 시간 미분에 대해 이산 방정식으로 표현하는 것을 시간 차분, 상기 연속 미분 방정식을 공간 미분에 대해 이산 방정식으로 표현하는 것을 공간 차분이라 한다. 오픈폼 상에서의 연속 미분 방정식은 속도에 대한 시간 미분(비정상항), 속도의 비선형 공간 미분(대류항), 압력의 공간 미분(압력구배항), 속도의 2차 미분(확산항)으로 이루어지며, 행렬 분석부(102)는 상기 행렬의 요소, 즉 비정상항, 대류항, 압력구배항, 확산항의 시간/공간 차분을 분석하여 위험 격자의 수치적 불안정성의 요인을 판단할 수 있다.In addition, the
일 예시로서, 상기 행렬 요소의 분석 결과, 비정상항과 확산항에서는 대각 행렬(diagPtr_)의 값이 양수이고 대류항에서는 대각 행렬(diagPtr_)의 값이 음수이며 상기 대각 행렬(diagPtr_)의 값을 모두 더했을 때 음수가 되는 경우, 행렬 분석부(102)는 상기 위험 격자의 수치적 불안정성이 대류항에 기인한 것으로 판단할 수 있다. 상술한 바와 같이, 일 격자에 대한 대각 행렬(diagPtr_)의 값이 설정된 값 이하이거나 음수가 되는 경우, 상기 격자에 힘을 가하여도 상기 힘과 반대 방향으로 움직인다던가, 상기 격자가 인접한 격자에서 발생한 조그만 오차에 매우 민감하게 작용하는 것으로 해석될 수 있다. 이와 같이, 행렬 분석부(102)는 상기 행렬의 요소를 분석하여 위험 격자의 수치적 불안정성이 어느 항의 어느 차분에 의한 것인지를 판단함으로써 차분법의 변경에 대한 논리적 근거와 방향을 제시할 수 있다.In an example of the analysis of the matrix elements, the diagonal matrix diagPtr_ is positive in the abnormal term and the diffusion term, the diagonal matrix diagPtr_ is negative in the convection term, and the diagonal matrix diagPtr_ The
다만, 상기 위험 격자의 수치적 불안정성의 요인을 판단하는 방법은 일 예시에 불과하며, 행렬 분석부(102)가 수치적 불안정성의 요인을 판단하는 방법이 이에 한정되는 것은 아니다. 행렬 분석부(102)는 예를 들어, 행렬 요소를 분석하여 소스 행렬(source_)의 값이 설정된 값 이상인지의 여부를 판단함으로써 상기 위험 격자의 수치적 불안정성의 요인을 판단할 수도 있다.However, the method of determining the factor of the numerical instability of the critical grid is merely an example, and the method of determining the factor of the numerical instability by the
행렬 값 변경부(104)는 상기 수치적 불안정성이 개선되도록 상기 위험 격자의 행렬 값을 변경한다. 상술한 바와 같이, 행렬 분석부(102)는 상기 행렬의 요소를 분석하여 위험 격자의 수치적 불안정성이 어느 항의 어느 차분에 의한 것인지를 판단할 수 있다.The matrix
일 예시로서, 행렬 값 변경부(104)는 상기 수치적 불안정성이 비정상항에 기인한 것으로 판단되는 경우 행렬의 인자에 적용되는 계산 시간 간격(△t)을 감소시킴으로써 위험 격자의 행렬 값을 변경할 수 있다. 상기 계산 시간 간격(△t)은 오픈폼 상에서 설정되는 설정 조건 중 하나로서, 본 발명이 속하는 기술분야(예를 들어, 전산 유체 해석 분야)에서 일반적으로 널리 사용되는 용어이므로 이에 대한 자세한 설명은 생략하기로 한다.As an example, the matrix
다른 예시로서, 행렬 값 변경부(104)는 상기 수치적 불안정성이 대류항에 기인한 것으로 판단되는 경우 상기 대류항에 내재적 모멘텀 소스항(implicit momentum source term)을 추가함으로써 위험 격자의 행렬 값을 변경할 수 있다. 대각 행렬(diagPtr_)의 값은 비정상항, 대류항, 압력구배항, 확산항 등에서 도출된 값을 모두 더한 것이므로, 대류항에 내재적 모멘텀 소스항을 추가하는 경우 대각 행렬(diagPtr_)의 값이 변하게 되며 이에 따라 전체 행렬의 값 또한 변하게 된다.As another example, the matrix
다른 예시로서, 행렬 값 변경부(104)는 상기 수치적 불안정성이 압력구배항에 기인한 것으로 판단되는 경우 상기 압력구배항에 모멘텀 싱크항(momentum sink term)을 추가함으로써 위험 격자의 행렬 값을 변경할 수 있다. 대각 행렬(diagPtr_)의 값은 비정상항, 대류항, 압력구배항, 확산항 등에서 도출된 값을 모두 더한 것이므로, 압력구배항에 모멘텀 싱크항을 추가하는 경우 대각 행렬(diagPtr_)의 값이 변하게 되며 이에 따라 전체 행렬의 값 또한 변하게 된다.As another example, the matrix
다른 예시로서, 행렬 값 변경부(104)는 상기 수치적 불안정성이 확산항에 기인한 것으로 판단되는 경우 상기 확산항에 인위적 점성항(artificial viscous diffusion)을 추가함으로써 위험 격자의 행렬 값을 변경할 수 있다. 대각 행렬(diagPtr_)의 값은 비정상항, 대류항, 압력구배항, 확산항 등에서 도출된 값을 모두 더한 것이므로, 확산항에 인위적 점성항을 추가하는 경우 대각 행렬(diagPtr_)의 값이 변하게 되며 이에 따라 전체 행렬의 값 또한 변하게 된다.As another example, the matrix
또한, 행렬 값 변경부(104)는 특정 항에 상관 없이 행렬의 수치적 안정성을 증가시키기 위해 대각 행렬(diagPtr_)의 값의 크기를 증가시킴으로써 위험 격자의 행렬 값을 변경할 수 있다. 이와 같이, 행렬 값 변경부(104)는 다양한 방법을 통해 위험 격자의 행렬 값을 변경함으로써 상술한 수치적 불안정성을 개선할 수 있다. In addition, the matrix
계산부(106)는 변경된 상기 행렬 값을 이용하여 행렬의 해를 계산한다. 계산부(106)는 예를 들어, 오픈폼에서 제공되는 다양한 행렬 솔버(matrix solver)를 이용하여 상기 행렬의 해를 계산할 수 있다. 상기 해는 수치적 불안정성이 개선된 행렬 값을 이용하여 도출되므로, 실제 결과와 유사한 값으로 수렴하게 된다.The
유저 인터페이스(108)는 위험 격자의 격자 형태, 속도, 압력, 온도 및 밀도 중 하나 이상을 가시화하여 사용자에게 제공한다. 유저 인터페이스(108)는 예를 들어, 그래픽 기반의 유저 인터페이스(GUI : Graphical User Interface), 텍스트 기반의 유저 인터페이스(Text-based User Interface) 등일 수 있다. 유저 인터페이스(108)는 위험 격자의 격자 형태, 속도, 압력, 온도 및 밀도 중 하나 이상을 가시화하여 사용자에게 제공할 수 있으며, 사용자는 위험 격자에 대한 각종 정보를 보다 직관적으로 확인할 수 있다.The
또한, 유저 인터페이스(108)는 계산부(106)에서 계산된 행렬 값을 사용자에게 제공할 수 있다. 유저 인터페이스(108)는 계산부(106)에서 계산된 행렬 값을 가시화하여 사용자에게 제공할 수 있으며, 이에 따라 사용자는 구하고자 하는 유동의 속도, 압력, 온도, 밀도 등을 확인할 수 있다.In addition, the
도 2는 본 발명의 일 실시예에 따른 유동의 예시이다. 여기서, Re는 레이놀즈 수이며, 유동 특성을 결정하는 데 사용된다. 또한, U0는 유체가 속한 판이 움직이는 속도를 나타낸다. 또한, 화살표는 2차원 유동 해석의 속도 벡터를 나타내며, 색깔은 유동의 압력을 나타낸다. 예를 들어, 파란색은 유동의 압력이 낮음을 의미하며, 빨간색은 유동의 압력이 높음을 의미한다.Figure 2 is an illustration of flow in accordance with one embodiment of the present invention. Where Re is the Reynolds number and is used to determine flow characteristics. Also, U 0 represents the speed at which the plate to which the fluid belongs moves. The arrows represent the velocity vectors of the two-dimensional flow analysis, and the colors represent the pressure of the flow. For example, blue means that the pressure of the flow is low, and red means that the pressure of the flow is high.
본 발명의 일 실시예에 따른 오픈폼 분석 시스템(100)은 오픈폼 상에서 이와 같은 유동 분석시 수치적 불안정성을 개선하는 데 사용될 수 있다.The open-
도 3은 본 발명의 일 실시예에 따른 격자의 예시이며, 도 4는 도 3의 격자들 중 위험 격자를 나타낸 예시이다.FIG. 3 is an illustration of a grating in accordance with an embodiment of the present invention, and FIG. 4 is an illustration of a critical grating among the gratings of FIG.
먼저, 도 3을 참조하면, 유동 해석을 위한 해석 공간은 수만 개 내지 수천만 개의 격자로 이루어질 수 있으며, 각 격자는 서로 다른 식별 번호로 구별될 수 있다.First, referring to FIG. 3, the analysis space for the flow analysis can be made up of tens of thousands to tens of millions of grids, and the grids can be distinguished by different identification numbers.
다음으로, 도 4를 참조하면, 각 행은 일 격자가 어느 격자로부터 어떤 영향을 받고 있는지 그 영향 계수를 나타내고 있으며, 흰색 부분의 행렬 값은 대각 행렬(diagPtr_)의 값을 나타낸다. 도 4에 도시된 바와 같이, 27번, 30번, 33번, 34번, 35번 격자의 대각 행렬(diagPtr_)의 값(0.00723/0.00712/-0.0043/0.00712/0.00723)은 설정된 값(예를 들어, 0.01) 이하이거나 음수인 것을 확인할 수 있다. 이에 따라, 행렬 분석부(102)는 27번, 30번, 34번, 35번 격자를 위험 격자로 판단할 수 있다. Next, referring to FIG. 4, each row represents the influence coefficient of which lattice is affected by which lattice, and the matrix value of the white portion represents the value of the diagonal matrix diagPtr_. (0.00723 / 0.00712 / -0.0043 / 0.00712 / 0.00723) of the diagonal matrix (diagPtr_) of the lattice of 27th, 30th, 33th, 34th and 35th lattice is set to a set value , 0.01) or a negative number. Accordingly, the
도 5는 본 발명의 일 실시예에 따른 수치적 불안정성의 요인을 판단하는 과정을 설명하기 위한 예시이다. 여기서, 도 5의 unsteady term 은 비정상항을 차분하였을 때 나타나는 행렬 계수를 의미하며, convective term 은 대류항을 차분하였을 때 나타나는 행렬 계수를 의미하며, diffusion term 은 확산항을 차분하였을 때 나타나는 행렬 계수를 의미한다.5 is an illustration for explaining a process of determining a factor of numerical instability according to an embodiment of the present invention. In this case, the unsteady term in FIG. 5 means a matrix coefficient when the abnormal term is subtracted. The convective term means a matrix coefficient when the convection term is subtracted, and the diffusion term means a matrix coefficient when the diffusion term is subtracted it means.
도 5를 참조하면, 비정상항과 확산항에서는 대각 행렬(diagPtr_)의 값(0.00878/0.00085)이 양수이고 대류항에서는 대각 행렬(diagPtr_)의 값(-0.01632)이 음수이며 상기 대각 행렬(diagPtr_)의 값을 모두 더했을 때 음수가 된다. 따라서, 행렬 분석부(102)는 상기 위험 격자의 수치적 불안정성이 대류항에 기인한 것으로 판단할 수 있다.5, in the abnormal term and the diffusion term, the diagonal matrix diagPtr_ (0.00878 / 0.00085) is positive and the diagonal matrix diagPtr_ (-0.01632) is negative in the convection term, When all the values are added, they become negative. Therefore, the
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.FIG. 6 is a block diagram illustrating and illustrating a
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 오픈폼 분석 시스템(100), 또는 오픈폼 분석 시스템(100)에 포함되는 하나 이상의 컴포넌트일 수 있다.The illustrated
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.The computer-
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(102)와 연결될 수도 있다.The
도 7은 본 발명의 일 실시예에 따른 오픈폼 분석 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.7 is a flowchart illustrating an open form analysis method according to an embodiment of the present invention. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.
S702 단계에서, 행렬 분석부(102)는 오픈폼 상에서의 격자 및 설정 조건을 기반으로 생성되는 다원 방정식에 대한 행렬을 분석하여 상기 행렬의 수치적 불안정성을 야기하는 위험 격자를 결정한다. 일 예시로서, 행렬 분석부(102)는 대각 행렬(diagPtr_)의 값이 설정된 값 이하이거나 음수인 격자, 소스 행렬(source_)의 값이 설정된 값 이상인 격자, 또는 설정된 값 이상의 종횡비로 인해 특정 방향으로 플럭스(flux)가 증가하는 격자를 위험 격자로 결정할 수 있다.In step S702, the
S704 단계에서, 행렬 분석부(102)는 상기 행렬의 요소를 분석하여 위험 격자의 수치적 불안정성의 요인을 판단한다. 상술한 바와 같이, 행렬 분석부(102)는 상기 행렬의 요소, 즉 비정상항, 대류항, 압력구배항, 확산항의 시간/공간 차분을 분석하여 위험 격자의 수치적 불안정성의 요인을 판단할 수 있다.In step S704, the
S706 단계에서, 행렬 값 변경부(104)는 상기 수치적 불안정성이 개선되도록 위험 격자의 행렬 값을 변경한다. 일 예시로서, 행렬 값 변경부(104)는 상기 수치적 불안정성이 비정상항에 기인한 것으로 판단되는 경우 행렬의 인자에 적용되는 계산 시간 간격(△t)을 감소시킴으로써 위험 격자의 행렬 값을 변경할 수 있다.In step S706, the matrix
S708 단계에서, 계산부(106)는 변경된 행렬 값을 이용하여 행렬의 해를 계산한다. 계산부(106)는 예를 들어, 오픈폼에서 제공되는 다양한 행렬 솔버(matrix solver)를 이용하여 상기 행렬의 해를 계산할 수 있다.In step S708, the
또한, 상술한 바와 같이, 유저 인터페이스(108)는 위험 격자의 격자 형태, 속도, 압력, 온도 및 밀도, 계산부(106)에서 계산된 행렬 값 등을 가시화하여 사용자에게 제공할 수 있다. Also, as described above, the
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.On the other hand, an embodiment of the present invention may include a program for performing the methods described herein on a computer, and a computer-readable recording medium including the program. The computer-readable recording medium may include a program command, a local data file, a local data structure, or the like, alone or in combination. The media may be those specially designed and constructed for the present invention, or may be those that are commonly used in the field of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, and specifically configured to store and execute program instructions such as ROM, RAM, flash memory, Hardware devices. Examples of such programs may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, I will understand. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.
10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
100 : 오픈폼 분석 시스템
102 : 행렬 분석부
104 : 행렬 값 변경부
106 : 계산부
108 : 사용자 인터페이스(UI)10: Computing environment
12: computing device
14: Processor
16: Computer readable storage medium
18: Communication bus
20: Program
22: I / O interface
24: input / output device
26: Network communication interface
100: Open Foam Analysis System
102: Matrix analyzing unit
104: Matrix value changing unit
106:
108: User Interface (UI)
Claims (9)
상기 수치적 불안정성이 개선되도록 상기 위험 격자의 행렬 값을 변경하는 행렬 값 변경부; 및
변경된 상기 행렬 값을 이용하여 상기 행렬의 해를 계산하는 계산부를 포함하며,
상기 행렬 분석부는, 상기 행렬의 요소를 분석하여 상기 위험 격자의 수치적 불안정성의 요인을 판단하는, 오픈폼 분석 시스템.
A matrix analyzer for analyzing a matrix of a plurality of equations generated on the basis of a grid and setting conditions on an open field operation (OpenFOAM: Open Field Operation And Manipulation) and determining a risk lattice causing numerical instability of the matrix, ;
A matrix value changing unit for changing a matrix value of the critical grid to improve the numerical instability; And
And a calculation unit for calculating the solution of the matrix using the changed matrix value,
Wherein the matrix analyzing unit analyzes elements of the matrix to determine a factor of numerical instability of the risk grid.
상기 행렬 분석부는, 대각 행렬(diagPtr_)의 값이 설정된 값 이하이거나 음수인 격자, 소스 행렬(source_)의 값이 설정된 값 이상인 격자, 또는 설정된 값 이상의 종횡비로 인해 특정 방향으로 플럭스(flux)가 증가하는 격자를 상기 위험 격자로 결정하는, 오픈폼 분석 시스템.
The method according to claim 1,
The matrix analyzing unit may be configured to determine whether a value of the diagonal matrix diagPtr_ is less than or equal to a predetermined value, a lattice in which a value of the diagonal matrix diagPtr_ is less than a predetermined value, a lattice in which a value of a source matrix source_ is greater than or equal to a predetermined value, Wherein the grid is determined as the critical grid.
상기 행렬 값 변경부는, 상기 수치적 불안정성이 비정상항(unsteady term)에 기인한 것으로 판단되는 경우 상기 행렬의 인자에 적용되는 계산 시간 간격(△t)을 감소시킴으로써 상기 위험 격자의 행렬 값을 변경하는, 오픈폼 분석 시스템.
The method according to claim 1,
Wherein the matrix value changing unit changes a matrix value of the critical grid by decreasing a computation time interval? T applied to a factor of the matrix when the numerical instability is determined to be caused by an unsteady term , Open form analysis system.
상기 행렬 값 변경부는, 상기 수치적 불안정성이 대류항(convective term)에 기인한 것으로 판단되는 경우 상기 대류항에 내재적 모멘텀 소스항(implicit momentum source term)을 추가함으로써 상기 위험 격자의 행렬 값을 변경하는, 오픈폼 분석 시스템.
The method according to claim 1,
Wherein the matrix value changing unit changes the matrix value of the critical grid by adding an implicit momentum source term to the convection term when it is determined that the numerical instability is due to a convective term , Open form analysis system.
상기 행렬 값 변경부는, 상기 수치적 불안정성이 압력구배항(pressure gradient term)에 기인한 것으로 판단되는 경우 상기 압력구배항에 모멘텀 싱크항(momentum sink term)을 추가함으로써 상기 위험 격자의 행렬 값을 변경하는, 오픈폼 분석 시스템.
The method according to claim 1,
The matrix value changing unit may change the matrix value of the critical grid by adding a momentum sink term to the pressure gradient term when it is determined that the numerical instability is due to a pressure gradient term Open-form analysis system.
상기 행렬 값 변경부는, 상기 수치적 불안정성이 확산항(diffusion term)에 기인한 것으로 판단되는 경우 상기 확산항에 인위적 점성항(artificial viscous diffusion)을 추가함으로써 상기 위험 격자의 행렬 값을 변경하는, 오픈폼 분석 시스템.
The method according to claim 1,
Wherein the matrix value changing unit changes the matrix value of the risk lattice by adding an artificial viscous diffusion to the spread term when the numerical instability is determined to be caused by a diffusion term, Foam analysis system.
상기 행렬 값 변경부는, 상기 대각 행렬의 값의 크기를 증가시킴으로써 상기 위험 격자의 행렬 값을 변경하는, 오픈폼 분석 시스템.
The method of claim 3,
Wherein the matrix value changing unit changes a matrix value of the critical grid by increasing a value of the diagonal matrix.
상기 위험 격자의 격자 형태, 속도, 압력, 온도 및 밀도 중 하나 이상을 가시화하여 사용자에게 제공하는 사용자 인터페이스(UI : User Interface)를 더 포함하는, 오픈폼 분석 시스템.
The method according to claim 1,
Further comprising a user interface (UI) for visualizing at least one of a lattice shape, a velocity, a pressure, a temperature and a density of the critical grid to provide the visualized user with a user interface (UI).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160116391A KR101809010B1 (en) | 2016-09-09 | 2016-09-09 | System and method for analyzing openfoam |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160116391A KR101809010B1 (en) | 2016-09-09 | 2016-09-09 | System and method for analyzing openfoam |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101809010B1 true KR101809010B1 (en) | 2018-01-18 |
Family
ID=61028827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160116391A KR101809010B1 (en) | 2016-09-09 | 2016-09-09 | System and method for analyzing openfoam |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101809010B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200071993A (en) * | 2018-12-12 | 2020-06-22 | 주식회사 넥스트폼 | Improved velocity pressure enthalpy coupled analyzing method and computing system implementing the same using energy equation |
CN111931449A (en) * | 2020-08-11 | 2020-11-13 | 上海华力微电子有限公司 | Analysis method of layout graph density |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011154510A (en) * | 2010-01-27 | 2011-08-11 | Canon Inc | Numerical calculation method and apparatus for simultaneous linear equation |
KR101192335B1 (en) | 2011-05-16 | 2012-10-26 | 한국과학기술연구원 | Method for simulating fluid flow and recording medium for performing the method |
KR101612506B1 (en) * | 2014-10-21 | 2016-04-14 | 한국항공우주산업 주식회사 | System and method for Aircraft areodynamic analysis using CFD |
-
2016
- 2016-09-09 KR KR1020160116391A patent/KR101809010B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011154510A (en) * | 2010-01-27 | 2011-08-11 | Canon Inc | Numerical calculation method and apparatus for simultaneous linear equation |
KR101192335B1 (en) | 2011-05-16 | 2012-10-26 | 한국과학기술연구원 | Method for simulating fluid flow and recording medium for performing the method |
KR101612506B1 (en) * | 2014-10-21 | 2016-04-14 | 한국항공우주산업 주식회사 | System and method for Aircraft areodynamic analysis using CFD |
Non-Patent Citations (1)
Title |
---|
"OpenFOAM과 어탭티드 격자를 이용한 난류 경계층의 직접 수치 모사", 대한조선학회논문집 제53권 제3호(pp. 210-216), 2016년 6월 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200071993A (en) * | 2018-12-12 | 2020-06-22 | 주식회사 넥스트폼 | Improved velocity pressure enthalpy coupled analyzing method and computing system implementing the same using energy equation |
KR102287504B1 (en) | 2018-12-12 | 2021-08-09 | 주식회사 넥스트폼 | Improved velocity pressure enthalpy coupled analyzing method and computing system implementing the same using energy equation |
CN111931449A (en) * | 2020-08-11 | 2020-11-13 | 上海华力微电子有限公司 | Analysis method of layout graph density |
CN111931449B (en) * | 2020-08-11 | 2023-11-03 | 上海华力微电子有限公司 | Layout pattern density analysis method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pareschi et al. | Structure preserving schemes for nonlinear Fokker–Planck equations and applications | |
Li et al. | Identification of parameter correlations for parameter estimation in dynamic biological models | |
Sevilla et al. | A face‐centred finite volume method for second‐order elliptic problems | |
US20140208289A1 (en) | Systems and methods for modeling execution behavior | |
US10755001B2 (en) | Port management for graphical modeling | |
BR112015025513B1 (en) | METHOD TO COMPILE A TRANSFORMATION CHAIN FROM A USER INTERFACE TO RECALCULATION AND COMPUTER SYSTEM | |
KR101809010B1 (en) | System and method for analyzing openfoam | |
Gurris et al. | Implicit finite element schemes for the stationary compressible Euler equations | |
Valen-Sendstad et al. | A comparison of finite element schemes for the incompressible Navier–Stokes equations | |
Kolokolnikov et al. | Stable asymmetric spike equilibria for the Gierer–Meinhardt model with a precursor field | |
Brightwell et al. | Extinction times in the subcritical stochastic SIS logistic epidemic | |
Schmidt et al. | Latin hypercube sampling-based Monte Carlo simulation: extension of the sample size and correlation control | |
CN106484389A (en) | Stream of action sectional management | |
Linders et al. | Locally conservative and flux consistent iterative methods | |
KR101562863B1 (en) | Method for simulating fluid flow by using the lattice Boltzmann theory and recording medium for performing the method | |
KR20170067374A (en) | Method and apparatus for modeling movement of air bubble based on fluid particle | |
Melis et al. | Telescopic projective integration for linear kinetic equations with multiple relaxation times | |
Lang | Rosenbrock-Wanner methods: Construction and mission | |
Oliveira et al. | Teaching particle swarm optimization through an open‐loop system identification project | |
US10853532B2 (en) | Graphical modeling for accessing dynamic system states across different components | |
EP2831761B1 (en) | Configurable representation of domain models | |
Najariyan et al. | Solving first order linear fuzzy differential equations system | |
KR101846746B1 (en) | Apparatus and method for simplifying boundary representation based 3d model | |
Schwieger et al. | Graph representations of monotonic Boolean model pools | |
Gatto et al. | Bayesian inference on the bimodality of the generalized von Mises distribution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |