当前位置: 首页 > news >正文

多孔弹性材料中传播的膨胀波方法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现

💥1 概述

膨胀波是流体力学的基本概念之一,指流体中扰动区与未扰动区的分界面,流体通过此界面会压力降低。膨胀波问题中一个典型例子是超音速气流绕凸角的定常流动,这种流动称为普朗特-迈耶尔流动。在这种流动中,气流逐渐从一个方向转到另一个方向,同时不断加速。

📚2 运行结果

部分代码:

%%

clear

%% inputs

freq=10^3;%*(2.^([-20:20]/3)); %frequency

%% setup domain and mesh

domain.dim=[0.05 0.025]; %dimensions of domain

domain.off=[0 0]; %offset of domain

domain.fce=[1 2 3 4]; %face ids (for boundary conditions) on [-x +x -y +y]

nnd=domain.dim./0.0025+1; %number of nodes in each direction

mesh=blockmesh(nnd,domain.dim,domain.off,domain.fce);

%% loop for frequency

for f=1:length(freq)

fprintf(['computing frequency ',num2str(f),' of ',num2str(length(freq)),' ... \n']);

%% setup boundary conditions

addpath('MESH')

bcs=initbcs(mesh.nodes,mesh.elems,mesh.faces,8);

bcs=addbcface(bcs,1,1,5);

bcs=addbcface(bcs,1,2,6);

bcs=addbcface(bcs,1,3,7);

bcs=addbcface(bcs,1,4,8);

bcs=addbcface(bcs,1,1,9);

% bcs=addbcface(bcs,1,2,10);

bcs=addbcface(bcs,1,3,11);

bcs=addbcface(bcs,1,4,12);

bcs.type{1}(:)=2;

bcs.coef{1}(bcs.face{1}==1,5)=1; %face 1

bcs.coef{1}(bcs.face{1}==2,1)=1; %face 2

bcs.coef{1}(bcs.face{1}==3,2)=1; %face 3

bcs.coef{1}(bcs.face{1}==4,2)=1; %face 4

bcs.coef{1}(bcs.face{1}==5,6)=1; %face 5

bcs.coef{1}(bcs.face{1}==6,3)=1; %face 6

bcs.coef{1}(bcs.face{1}==7,4)=1; %face 7

bcs.coef{1}(bcs.face{1}==8,4)=1; %face 8

bcs.coef{1}(bcs.face{1}==9,8)=1; bcs.rhds{1}(bcs.face{1}==9)=1; %face 9

% bcs.coef{1}(bcs.face{1}==10,1)=1; %face 10

bcs.coef{1}(bcs.face{1}==11,6)=1; %face 11

bcs.coef{1}(bcs.face{1}==12,6)=1; %face 12

%% setup physics

addpath('PLANES')

air=air_properties_generic;

medium=4003;

PEM.name_mat=['Mat_porous_' num2str(medium-1000*floor(medium/1000))];

PEM.typ_mat=floor(medium/1000);

eval(['PEM=Mat_porous_' num2str(medium-1000*floor(medium/1000)),'(PEM);'])

PEM=properties_JCA(PEM,air,freq(f));

PEM=properties_PEM(PEM,air,freq(f));

physics=PEM;

%% assemble

[stiff,force,err,tol,condH]=assemble(mesh,bcs,physics,freq(f));

%% solve

fprintf('solving ... \n');

operationtime=cputime;

fprintf(' solving directly ... ');

q=full(stiff\force);

fprintf('done\n');

%% postprocess

nnds=mesh.nnds;

soln.usx(:,f)=q((1:nnds)+nnds*0);

soln.usy(:,f)=q((1:nnds)+nnds*1);

soln.utx(:,f)=q((1:nnds)+nnds*2);

soln.uty(:,f)=q((1:nnds)+nnds*3);

soln.sxx(:,f)=q((1:nnds)+nnds*4);

soln.sxy(:,f)=q((1:nnds)+nnds*5);

soln.syy(:,f)=q((1:nnds)+nnds*6);

soln.p(:,f)=q((1:nnds)+nnds*7);

% soln.cond(:,f)=condest(stiff);

us=mean(reshape(soln.usx(:,f),nnd(1),nnd(2)),2);

ut=mean(reshape(soln.utx(:,f),nnd(1),nnd(2)),2);

s=mean(reshape(soln.sxx(:,f),nnd(1),nnd(2)),2);

p=mean(reshape(soln.p(:,f),nnd(1),nnd(2)),2);

Z=p(1)/ut(1);

R=(Z-air.rho*air.c)/(Z+air.rho*air.c);

alpha(:,f)=1-abs(R)^2;

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]刘占芳,严波,唐录成.饱和多孔弹性材料中加速度波的传播[J].重庆大学学报(自然科学版),1998(02):9-17.

🌈4 Matlab代码实现

相关文章:

多孔弹性材料中传播的膨胀波方法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...

时间复杂度与空间复杂度

目录一、算法的复杂度二、时间复杂度2.1 什么叫时间复杂度2.2 大O的渐进表示法2.3 计算时间复杂度的练习三、空间复杂度四、常见复杂度的对比一、算法的复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏&#xf…...

UDP报文详解

目录 🐳今日良言:走好选择的路,别选择好走的路,你才能拥有真正的自己。 🐼一、UDP协议特点 🐼二、UDP协议段格式详解 🐳今日良言:走好选择的路,别选择好走的路,你才能拥有真正的自…...

C#开发的OpenRA的NextPowerOf2

C#开发的OpenRA的NextPowerOf2 在游戏里,经常需要对计算资源进行优化。 比如屏幕的大小,以及缓冲区的大小,还有纹理的大小。 由于计算机都是基于二进制的原理,那么它的最快计算速度,就是让计算的数字都是2的n次方。 基于此策略,在程序里就需要计算出来最接近2的n次方的数…...

CDH 6.3.2启用HDFS高可用

启用原因 CDH 6.3.2平台即将用于生产,生产平台几乎需要高可用平台,故需要升级CDH中的HDFS为HA。 启用准备 CDH已经成功安装并正常使用CMS的管理员账号正常登陆 HDFS启用HA 登陆CMS系统->选择HDFS服务->点击进入到HDFS服务详情页面&#xff0c…...

多服务器节点访问解决一人一单问题+redis设置锁方案

项目地址及项目具体介绍-码云仓库:https://gitee.com/flowers-bloom-is-the-sea/distributeNodeSolvePessimisticLockByRedis 测试1: 这里使用jmeter同时启动2各线程: 原来的数据库表的数据: goods的数据是: id …...

tensorflow 学习笔记(三):神经网络八股

本节内容: 前两节使用 Tensorflow2 的原生代码大叫神经网络。本节使用 keras 搭建神经网络(八股:六步法,有 Sequential 和 class 两种)。 文章目录一、搭建网络八股 sequential1.1、keras 介绍1.2、六步法搭建 keras …...

华为OD机试真题Python实现【射击比赛】真题+解题思路+代码(20222023)

射击比赛 题目 给定一个射击比赛成绩单 包含多个选手若干次射击的成绩分数 请对每个选手按其最高三个分数之和进行降序排名 输出降序排名后的选手 ID 序列 条件如下: 一个选手可以有多个射击成绩的分数 且次序不固定如果一个选手成绩小于三个 则认为选手的所有成绩无效 排名忽…...

【YBT2023寒假Day12 C】树的计数 II(prufer)(结论)(数学)

树的计数 II 题目链接:YBT2023寒假Day12 C 题目大意 给你一个长度为 n 的排列 p,问你有多少个不同的有标号无根树,满足如果 i,j 有边那 pi,pj 也有边。 思路 首先可以把排列变成置换环。 注意到是树,发现一个置换中似乎不太可…...

深入浅出C++ ——多态

文章目录一、多态的概念二、多态的定义及实现1. 多态的构成条件2. 虚函数3. 虚函数的重写4. virtual的使用:5. 虚函数重写的两个例外:6. C11 override 和 final7. 重载、重写、重定义的对比三、抽象类四、多态的原理1. 虚函数表2. 多态的原理3. 静态绑定…...

华为OD机试真题Python实现【整数编码】真题+解题思路+代码(20222023)

整数编码 题目 实现一个整数编码方法 使得待编码的数字越小 编码后所占用的字节数越小 编码规则如下 编码时7位一组,每个字节的低 7 位用于存储待编码数字的补码字节的最高位表示后续是否还有字节,置1表示后面还有更多的字节,置0表示当前字节为最后一个字节采用小端序编码…...

FPGA纯Vhdl实现MIPI CSI2RX视频解码输出,OV13850采集,提供工程源码和技术支持

目录1、前言2、Xilinx官方主推的MIPI解码方案3、纯Vhdl方案解码MIPI4、vivado工程介绍5、上板调试验证6、福利:工程代码的获取1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰…...

7 个 JavaScript Web API 来构建你不知道的未来网站

随着技术的日新月异,为开发人员提供了令人难以置信的新工具和API。但据了解,在100 多个 API中,只有5%被开发人员积极使用。让我们来看看一些有用的Web API,它们可以帮助您将网站推向月球!🌕🚀1.…...

跟ChatGPT,聊聊ChatGPT

不仅“上知天文、下知地理”,似乎还能对答如流、出口成诗,甚至还能写剧本、编音乐、写代码——最近,一款名叫ChatGPT的人工智能聊天机器人火爆全球。由此,一系列关于新一代技术变革、人工智能替代人力、巨头企业扎堆入局AI的讨论在…...

Java 数组(详细教学 基础篇)

一、数组的基本要素 标识符:数组的名称数组元素:数组中存放的数据元素下标:对数组元素进行编号,数组下标从0开始来访问元素类型:数组元素的数据类型 二、数组的五种赋值方法和使用方法 声明数组 int[] arr;//开辟三个…...

python装饰器原理 | 常用装饰器使用(@cache, @lru_cache)

🚀 关于python的装饰器原理介绍可看这里,讲的挺简洁易懂:python装饰器原理 ⭐ 弄懂装饰器原理后,来学学常用装饰器。 文章目录1、cache, lru_cache1、cache, lru_cache 也就是一种装饰在被执行的函数上,将其执行的结果…...

[oeasy]python0090_极客起源_wozniac_苹果公司_Jobs_Wozniac

极客起源 回忆上次内容 上次回顾了 DEC公司的兴起 从IBM的大型机 到DEC的小型机Mini Computer 再到DEC的终端 VT-100 计算机基础元器件发生了进化 从ENIAC的 电子管到PDP系列的 晶体管 新的器件 体积小了价格低了稳定性 提高了而且 连成了网络 ARPA网 就是 最初的Internet …...

Spring基础总结(下)

简介 本章节通过手写一个简单的 Spring 框架来加深对 Spring 框架源码以及设计思想的理解; 实现步骤 BeanScope 枚举代码 public enum BeanScope { sigleton, prototype; }AppConfig 配置类 // 定义包扫描路径 ComponentScan("com.dufu.spring"…...

设计模式面试题

设计模式分为 创建型 工厂模式 单例 原型行为性 责任链 迭代器 命令中介型结构性 适配器 代理 门面 装饰器 组合 桥接单例设计模式 懒汉式 用到时再创建,省内存 饿汉式 类创建时就创建,会占用内存 内部类 用到时再创建,省内存 线程池、数据…...

需要知道的一些API接口的基础知识

API是应用程序编程接口(Application Programming Interface)的缩写,能够起到两个软件组件之间的连接器或中介的作用。此类接口往往通过一组明确的协议,来表示各种原始的请求和响应。API文档可以向开发人员展示请求和响应是如何形成…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

云原生安全实战:API网关Kong的鉴权与限流详解

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...