gmsh 01 对多个面,及体进行剖分

#include <set>
#include <cmath>
#include <gmsh.h>#include <iostream>int main(int argc, char** argv)
{gmsh::initialize(argc, argv);		// 初始化gmsh::model::add("t2");				// 创建 t2 modeldouble lc = 0.05;	gmsh::model::geo::addPoint(0, 0, 0, lc, 1);gmsh::model::geo::addPoint(.1, 0, 0, lc, 2);gmsh::model::geo::addPoint(.1, .3, 0, lc, 3);gmsh::model::geo::addPoint(0, .3, 0, lc, 4);		// XOY 平面gmsh::model::geo::addLine(1, 2, 1);gmsh::model::geo::addLine(2, 3, 2);gmsh::model::geo::addLine(3, 4, 3);gmsh::model::geo::addLine(4, 1, 4);gmsh::model::geo::addCurveLoop({ 4, 1, 2, 3 }, 1);	// 创建曲线 闭合 边	// 注意 tag 1gmsh::model::geo::addPlaneSurface({ 1 }, 1);		// 创建 part 面	{1}gmsh::model::geo::synchronize();// 创建物理条件组gmsh::model::addPhysicalGroup(1, { 1, 2, 4 }, 5);	// 创建一维, 1 2 4 条边,赋值 tag =5gmsh::model::addPhysicalGroup(2, { 1 }, -1, "My surface");// 创建 2 维, 1 面, 物理 tag = -1// 创建新的点gmsh::model::geo::addPoint(0, .4, 0, lc, 5);		// 第 5 个点gmsh::model::geo::addLine(4, 5, 5);				// 创建边,将第四个点和第五个点连接// 使用变换,将 // 0 维代表点,tag 是 5 第 5 个向左评议 gmsh::model::geo::translate({ {0, 5} }, -0.02, 0, 0);gmsh::model::geo::rotate({ {0, 5} }, 0, 0.3, 0, 0, 0, 1, -M_PI / 4);	// 旋转 //  0 维 5 号点, // 围绕 (0, 0.3, 0) 绕着 z 轴旋转, -PI/4std::vector<std::pair<int, int> > ov;gmsh::model::geo::copy({ {0, 3} }, ov);	// 将 0 维 的第 3 个点拷 ov  // 为什么这个 tag = 6gmsh::model::geo::translate(ov, 0, 0.05, 0);	// 将点 y 平移 0.05// 创建连接线gmsh::model::geo::addLine(3, ov[0].second, 7);	// 将 3 号点和	// 创建 7 号边 3, 6gmsh::model::geo::addLine(ov[0].second, 5, 8);  // 创建 6, 5 号边gmsh::model::geo::addCurveLoop({ 5, -8, -7, 3 }, 10);		// 创建一维的边,闭合的区域,标记 tag = 10gmsh::model::geo::addPlaneSurface({ 10 }, 11);				// 创建曲面平面, // 线标记 10, 面 tag 11gmsh::model::geo::addPoint(0., 0.3, 0.12, lc, 100);		// 100gmsh::model::geo::addPoint(0.1, 0.3, 0.12, lc, 101);	// 101gmsh::model::geo::addPoint(0.1, 0.35, 0.12, lc, 102);	// 102Wgmsh::model::geo::synchronize();std::vector<double> xyz;gmsh::model::getValue(0, 5, {}, xyz);gmsh::model::geo::addPoint(xyz[0], xyz[1], 0.12, lc, 103);gmsh::model::geo::addLine(4, 100, 110);gmsh::model::geo::addLine(3, 101, 111);gmsh::model::geo::addLine(6, 102, 112);gmsh::model::geo::addLine(5, 103, 113);gmsh::model::geo::addLine(103, 100, 114);gmsh::model::geo::addLine(100, 101, 115);gmsh::model::geo::addLine(101, 102, 116);gmsh::model::geo::addLine(102, 103, 117);gmsh::model::geo::addCurveLoop({ 115, -111, 3, 110 }, 118);gmsh::model::geo::addPlaneSurface({ 118 }, 119);gmsh::model::geo::addCurveLoop({ 111, 116, -112, -7 }, 120);gmsh::model::geo::addPlaneSurface({ 120 }, 121);gmsh::model::geo::addCurveLoop({ 112, 117, -113, -8 }, 122);gmsh::model::geo::addPlaneSurface({ 122 }, 123);gmsh::model::geo::addCurveLoop({ 114, -110, 5, 113 }, 124);gmsh::model::geo::addPlaneSurface({ 124 }, 125);gmsh::model::geo::addCurveLoop({ 115, 116, 117, 114 }, 126);gmsh::model::geo::addPlaneSurface({ 126 }, 127);gmsh::model::geo::addSurfaceLoop({ 127, 119, 121, 123, 125, 11 }, 128);	// 面的编号gmsh::model::geo::addVolume({ 128 }, 129);	// 体 129gmsh::model::geo::synchronize();gmsh::model::addPhysicalGroup(3, { 129 }, 1, "The volume");gmsh::model::mesh::generate(3);gmsh::write("t2.msh");std::set<std::string> args(argv, argv + argc);if (!args.count("-nopopup")) gmsh::fltk::run();gmsh::finalize();return 0;}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/655123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二手交易|校园二手交易小程序|基于微信小程序的闲置物品交易平台设计与实现(源码+数据库+文档)

校园二手交易小程序目录 目录 基于微信小程序的闲置物品交易平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、商品信息管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕…

斜率优化dp模型整理

300. 任务安排1&#xff08;300. 任务安排1 - AcWing题库&#xff09; 思路&#xff1a;很明显这些任务是按顺序排好的&#xff0c;我们能执行的操作只是对它们进行分批&#xff0c;我们可以发现每一批之前的开始时间s&#xff0c;影响的不仅仅是当前这一批的结束时间&#xff…

8.6跳跃游戏②(LC45-M)

算法&#xff1a; 与上一题一样&#xff0c;还是看最大覆盖范围 要从覆盖范围出发&#xff0c;不管怎么跳&#xff0c;覆盖范围内一定是可以跳到的&#xff0c;以最小的步数增加覆盖范围&#xff0c;覆盖范围一旦覆盖了终点&#xff0c;得到的就是最少步数&#xff01; 这里…

C++大学教程(第九版)7.30 打印array对象 7.31 逆序打印字符串(递归练习题)

文章目录 题目代码运行截图题目代码运行截图 题目 (打印array对象)编写一个递归函数printArray它以一个array对象一个开始下标和一个结束下标作为实参&#xff0c;不返回任何值并打印这个array对象。当开始下标和结束下标相等时&#xff0c;这个函数应该停止处理并返回。 代码…

跨镜网络解决方案:SD-WAN专线,实现企业全球互联

在全球化的背景下&#xff0c;越来越多的企业需要在海外社媒平台推广、研发访问海外平台、实现海外分部和国内互联互通等需求。然而&#xff0c;面对不同地区之间网络连接不稳定、高延迟、高成本等问题&#xff0c;如何实现企业的全球互联成为了一个亟待解决的难题。 幸运的是&…

laravel学习笔记

这两天公司活不多&#xff0c;学习了一下laravel框架。经过几天的学习&#xff0c;也对它有一些大概的了解。现在我就把我所学的到在这儿做下笔记吧。 一、laravel集合 其实&#xff0c;这里所说的集合&#xff0c;跟前端es6中的集合概念还是有那一点的不太一样。前端es6的集合…

C++ 数论相关题目:卡特兰数应用、快速幂求组合数。满足条件的01序列

给定 n 个 0 和 n 个 1 &#xff0c;它们将按照某种顺序排成长度为 2n 的序列&#xff0c;求它们能排列成的所有序列中&#xff0c;能够满足任意前缀序列中 0 的个数都不少于 1 的个数的序列有多少个。 输出的答案对 1097 取模。 输入格式 共一行&#xff0c;包含整数 n 。 …

Java 集合 02 综合练习+基本数据类型对应的包装类

练习1、 自己写的代码&#xff1a; import java.util.ArrayList; public class practice {public static void main(String[] args) {//定义一个集合ArrayList<String> list new ArrayList<>();list.add("aaa");list.add("bbb");list.add(…

python实现豆瓣电影搜索并自动添加相关信息

1.豆瓣电影搜索 2.豆瓣电影信息自动添加 搜索 众所周知&#xff0c;豆瓣搜索有加密&#xff0c;得解密才行&#xff0c;还好网上众多大神都给破解了&#xff0c;那咱们拿来直接使用就行 相关代码仓库&#xff1a;xadmin-server/movies/utils/douban/search.py at movies nin…

React中使用LazyBuilder实现页面懒加载方法一

前言&#xff1a; 在一个表格中&#xff0c;需要展示100条数据&#xff0c;当每条数据里面需要承载的内容很多&#xff0c;需要渲染的元素也很多的时候&#xff0c;容易造成页面加载的速度很慢&#xff0c;不能给用户提供很好的体验时&#xff0c;懒加载是优化页面加载速度的方…

AJAX进阶(重点)

目录 ◆ 同步代码和异步代码 ◆ 回调函数地狱和 Promise 链式调用 什么是回调函数地狱&#xff1f; Promise - 链式调用 什么是Promise链式调用&#xff1f; Promise 链式应用 &#xff08;重点&#xff09; ◆ async 和 await 使用 async函数和await_捕获错误 ◆ 事…

二分查找|详细讲解|两种写法

二分查找 目录 1 介绍2 例题引入3 “左闭右闭”写法4 “左闭右开”写法 1 介绍 二分查找适用于从一个递增或递减的有序数列中查找某一个值 因此&#xff0c;使用二分查找的条件是&#xff1a; 用于查找的内容从逻辑上来看是有序的查找的数量只能是一个而不是多个 在二分查…

RAG应用-七个最常见的故障点

近日&#xff0c;国外研究者发布了一篇论文《Seven Failure Points When Engineering a Retrieval Augmented Generation System》&#xff0c;探讨了在实际工程落地RAG应用过程中容易出的七类问题。 论文地址&#xff1a;https://arxiv.org/pdf/2401.05856.pdf 一、丢失内容&…

【Go-zero】手把手带你在goland中创建api文件并设置高亮

【Go-zero】手把手带你在goland中创建api文件并设置高亮 大家好 我是寸铁&#x1f44a; 总结了一篇手把手带你在goland中创建api文件并设置高亮解决方案的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 问题复盘 在使用go-zero 框架时&#xff0c;常常需要用到goctl 一键生成…

简单易用的购物车

实现了购物基本功能&#xff0c;那来修改一下就可以用&#xff0c;app,h5,小程序都可以 购物车插件 - DCloud 插件市场

会话技术复习笔记

一.登录校验的需求 什么是登录校验&#xff1f; 所谓登录校验&#xff0c;指的是我们在服务器端接收到浏览器发送过来的请求之后&#xff0c;首先我们要对请求进行校验。先要校验一下用户登录了没有&#xff0c;如果用户已经登录了&#xff0c;就直接执行对应的业务操作就可以…

数据结构——用Java实现二分搜索树

目录 一、树 二、二分搜索树 1.二叉树 2.二分搜索树 三、代码实现 1.树的构建 2.获取树中结点的个数 3.添加元素 4.查找元素 &#xff08;1&#xff09;查找元素是否存在 &#xff08;2&#xff09;查找最小元素 &#xff08;3&#xff09;查找最大元素 5.二分搜索…

合并有序链表---链表OJ---归并思想

https://leetcode.cn/problems/merge-two-sorted-lists/?envTypestudy-plan-v2&envIdtop-100-liked 将两个有序的链表合并为一个新的有序链表&#xff0c;那不就是和归并排序中最后合并的思想一样吗&#xff1f;只不过那里合并的是数组&#xff0c;这里合并的是链表。 首先…

StartAI宝藏功能——关键词解析

AIGC的同学们都有一个“世纪难题”——生图咒语。 想要生成高质量的图&#xff0c;关键词是至关重要地。关键词往往能决定一张图的成败&#xff01;当你看见一张戳中你审美的图&#xff0c;想模仿却不知如何下手&#xff0c;只能全网搜索生图咒语。 费事又费力&#xff0c;甚…

leetcode刷题(剑指offer) 50.Pow(x, n)

50.Pow(x, n) 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000示例 2&#xff1a; 输入&#xff1a;x 2.10000, n 3 输出&#x…