Windows下编译安装Kratos

news/2024/9/25 11:11:27/

Kratos是一款开源跨平台的多物理场有限元框架。本文记录在Windows下编译Kratos的流程。

Ref. from Kratos

KRATOS Multiphysics ("Kratos") is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface. 

Ref. from A Framework for Developing Finite Element Codes for Multi-Disciplinary Applications

The objective of this work is to design and implement a framework for building multi-disciplinary finite element programs. This framework is called Kratos and will help to build a wide variety of finite element programs from the simplest formulation, for example a heat conduction problem , to the most complex ones, like multi-disciplinary optimization techniques. From one side it will provide a complete set of flexible tools for fast implementation of experimentalacademic algorithms and form the other side it must be fast and efficient to be used for real industrial analysis.

零、环境

操作系统Windows 11
Visual StudioVisual Studio Community 2022
CMakeCMake 3.24.2
GitGit version 2.45.2.windows.1
BoostBoost 1.80.0

一、下载代码与依赖

1.1 下载代码

git.exe clone --progress --recursive -v https://github.com/KratosMultiphysics/Kratos.git
cd ./Kratos/
git checkout -b Kratos-v9.5 v9.5

1.2 依赖

下载并安装boost_1_80_0-msvc-14.3-64.exe。

二、编译

按照下表配置CMake,

Where is the source codeD:/CaeFrameworks/Kratos/Kratos
Where to build the binariesD:/CaeFrameworks/Kratos/BUILD/Kratos-v9.5
CMAKE_INSTALL_PREFIXD:/CaeFrameworks/Kratos/INSTALL/Kratos-v9.5
Boost_INCLUDE_DIRD:/CaeFrameworks/Boost/boost_1_80_0

在VS中右键"ALL_BUILD"完成编译,然后右键"INSTALL"完成安装。

参考资料

  • Pooyan Dadvand. A Framework for Developing Finite Element Codes for Multi-Disciplinary Applications. Monograph CIMNE, January 2008.
  • W. Bangerth. Concepts for Object-oriented finite element software - the deal Ⅱ library. 1999.

网络资料

Kratos


http://www.ppmy.cn/news/1499855.html

相关文章

以flask为后端的博客项目——星云小窝

以flask为后端的博客项目——星云小窝 文章目录 以flask为后端的博客项目——星云小窝前言一、星云小窝项目——项目介绍(一)二、星云小窝项目——项目启动(二)三、星云小窝项目——项目结构(三)四、谈论一…

Android小技巧:利用动态代理自动切换线程(续)

本文是针对上文Android小技巧:利用动态代理自动切换线程的一个补充,补充一种简单的实现方式。 上文中我们提到利用动态代理将对某个对象的方法调用自动切换到对应线程中去,只是探讨了可行性和局限,但如果每个功能都手动创建代理就…

记录贴-VUE相关

VUE多环境配置 链接: vue-cli3实现分环境打包步骤(给不同的环境配置相对应的打包命令) 链接: vue不同环境打包命令配置 链接: 官网-模式和环境变量 链接: vuejs多环境配置 链接: vue-cli-service build --mode 区分多个环境

线性代数:向量组与向量组等价

向量组概述 向量组是由若干个同维数的行向量或列向量组成的集合。这些向量可以是二维的、三维的,甚至是更高维度的。在数学和物理学的许多领域中,向量组扮演着至关重要的角色,特别是在线性代数、矩阵论、以及工程学中。 例如,一…

爬虫基本库的使用之使用urllib

在Python的爬虫开发领域,urllib是一个非常重要的基础库。它提供了丰富的接口来发送HTTP请求并处理响应,非常适合初学者以及需要快速实现HTTP请求的开发者。本文将详细介绍如何使用urllib库进行基本的网络爬虫开发。 1、urllib库简介 urllib是Python标准…

2.6基本算法之动态规划6045:开餐馆

描述 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列m1, m2, ... mn 来表示他们的相对位置。由于地段关系,开餐馆的利润会有所不同。我们用pi 表示在m…

Vue Router高级用法:动态路由与导航守卫

Vue Router是Vue.js官方的路由管理器,它和Vue.js的核心深度集成,让构建单页应用变得轻而易举。 动态路由 动态路由允许你在路由路径中使用变量,这些变量可以从实际的URL中获取,并传递给对应的路由组件。 定义动态路由 在route…

el-menu根据多层树形结构递归遍历展示菜单栏

文章目录 前提条件假设菜单等级只有两个等级结果如下所示 但是如果菜单等级超过两个等级或者多个等级的话App.vueMenuItems.vue结果如下所示 关于遍历时图标前的展示后续完善关于点击路由跳转参考element plus的官网即可 前提条件 package.json如下所示,这是一个Vi…