Python低溫半导体电子束量子波算法计算

🎯要点

🎯任意维度求解器,绘制三维投影结果 | 🎯解二维静电场、静磁场 | 🎯狄利克雷、诺依曼条件几何矩阵算子 | 🎯算法模拟低溫半导体材料 | 🎯计算曲面达西流 | 🎯电子结构计算和原子模拟 | 🎯算法模拟量子波函数和电子束

📜泊松方程 | 本文 - 用例

📜Python火焰锋动力学和浅水表面波浪偏微分方程

📜Python数值和符号算法计算及3D视图物理数学波形方程

📜Python射频电磁肿瘤热疗数学模型和电磁爆炸性变化统计推理模型

📜达西流用例:​Python和R水力电导率和达西流神经算子
在这里插入图片描述
在这里插入图片描述

🍇Python最低阶有限差分泊松方程

我们想要解泊松方程:
∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 = 0 \frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}=0 x22u+y22u=0
[ 0 , 1 ] × [ 0 , 1 ] [0,1] \times[0,1] [0,1]×[0,1] 方域中,具有边界条件
u ( x , 0 ) = x , u ( x , 1 ) = x − 1 , u ( 0 , y ) = − y , u ( 1 , y ) = 1 − y . u(x, 0)=x, \quad u(x, 1)=x-1, \quad u(0, y)=-y, \quad u(1, y)=1-y . u(x,0)=x,u(x,1)=x1,u(0,y)=y,u(1,y)=1y.
我们将使用最低阶有限差分表示:
∂ 2 u ∂ x 2 ( x i , y j ) ≃ 1 Δ x ( ∂ u ∂ x ( x i + 1 , y j ) − ∂ u ∂ x ( x i − 1 , y j ) ) ≃ 1 Δ x ( 1 Δ x ( u ( x i + 1 , y j ) − u ( x i , y j ) ) − 1 Δ x ( u ( x i , y j ) − u ( x i − 1 , y j ) ) ) \begin{gathered} \frac{\partial^2 u}{\partial x^2}\left(x_i, y_j\right) \simeq \frac{1}{\Delta x}\left(\frac{\partial u}{\partial x}\left(x_{i+1}, y_j\right)-\frac{\partial u}{\partial x}\left(x_{i-1}, y_j\right)\right) \\ \simeq \frac{1}{\Delta x}\left(\frac{1}{\Delta x}\left(u\left(x_{i+1}, y_j\right)-u\left(x_i, y_j\right)\right)-\frac{1}{\Delta x}\left(u\left(x_i, y_j\right)-u\left(x_{i-1}, y_j\right)\right)\right) \end{gathered} x22u(xi,yj)Δx1(xu(xi+1,yj)xu(xi1,yj))Δx1(Δx1(u(xi+1,yj)u(xi,yj))Δx1(u(xi,yj)u(xi1,yj)))

📜有限差分用例:Python微磁学磁倾斜和西塔规则算法

最终简化为,
∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 ≃ ( 1 Δ 2 ( u i + 1 , j + u i − 1 , j + u i , j + 1 + u i , j − 1 − 4 u i , j ) ) \frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2} \simeq\left(\frac{1}{\Delta^2}\left(u_{i+1, j}+u_{i-1, j}+u_{i, j+1}+u_{i, j-1}-4 u_{i, j}\right)\right) x22u+y22u(Δ21(ui+1,j+ui1,j+ui,j+1+ui,j14ui,j))

最直接的方法是直接求解线性系统:

import numpy as np
import matplotlib as ml
import matplotlib.pyplot as pp
def boundary(grid):x = np.linspace(0,1,len(grid))grid[0,:]  = np.interp(x,[0,1],[0,1])grid[:,-1] = np.interp(x,[0,1],[1,0])grid[-1,:] = np.interp(x,[0,1],[-1,0])grid[:,0]  = np.interp(x,[0,1],[0,-1])
def poisson_direct(gridsize,set_boundary):A = np.zeros(shape=(gridsize,gridsize,gridsize,gridsize),dtype='d')b = np.zeros(shape=(gridsize,gridsize),dtype='d')dx = 1.0 / (gridsize - 1)for i in range(1,gridsize-1):for j in range(1,gridsize-1):A[i,j,i-1,j] = A[i,j,i+1,j] = A[i,j,i,j-1] = A[i,j,i,j+1] = 1/dx**2A[i,j,i,j] = -4/dx**2for i in range(0,gridsize):A[0,i,0,i] = A[-1,i,-1,i] = A[i,0,i,0] = A[i,-1,i,-1] = 1set_boundary(b)return np.linalg.tensorsolve(A,b)
sol = poisson_direct(25,boundary)

为了展示解,我们需要将矩阵的通常解释(行、列、从上到左)与在笛卡尔平面上绘图的想法联系起来。

pp.imshow(sol.T,cmap=ml.cm.Blues,interpolation='none',origin='lower')

将其变成我们将再次使用的函数。

def showsol(sol):pp.imshow(sol.T,cmap=ml.cm.Blues,interpolation='none',origin='lower')
showsol(poisson_direct(51,boundary))

让我们尝试一种迭代方法:我们将泊松方程转化为扩散方程来求解
∂ u ∂ t = ∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 \frac{\partial u}{\partial t}=\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2} tu=x22u+y22u
并通过正向时间中心空间差分求解收敛
u i , j n + 1 = u i , j n + Δ t Δ 2 ( u i + 1 , j n + u i − 1 , j n + u i , j + 1 n + u i , j − 1 n − 4 u i , j n ) u_{i, j}^{n+1}=u_{i, j}^n+\frac{\Delta t}{\Delta^2}\left(u_{i+1, j}^n+u_{i-1, j}^n+u_{i, j+1}^n+u_{i, j-1}^n-4 u_{i, j}^n\right) ui,jn+1=ui,jn+Δ2Δt(ui+1,jn+ui1,jn+ui,j+1n+ui,j1n4ui,jn)
对于最大稳定时间步 Δ t = Δ 2 / 4 \Delta t=\Delta^2 / 4 Δt=Δ2/4 ,导出雅可比方法
u i , j n + 1 = 1 4 ( u i + 1 , j n + u i − 1 , j n + u i , j + 1 n + u i , j − 1 n ) u_{i, j}^{n+1}=\frac{1}{4}\left(u_{i+1, j}^n+u_{i-1, j}^n+u_{i, j+1}^n+u_{i, j-1}^n\right) ui,jn+1=41(ui+1,jn+ui1,jn+ui,j+1n+ui,j1n)

这相当于用最近邻的平均值替换每个网格值。这与调和函数理论是一致的。

def jacobi(grid):newgrid = np.zeros(shape=grid.shape,dtype=grid.dtype)newgrid[1:-1,1:-1] = 0.25 * (grid[1:-1,:-2] + grid[1:-1,2:] +grid[:-2,1:-1] + grid[2:,1:-1])newgrid[0,:]  = grid[0,:]newgrid[-1,:] = grid[-1,:]newgrid[:,0]  = grid[:,0]newgrid[:,-1] = grid[:,-1]return newgrid

我们从随机配置开始,应用边界条件,然后迭代。我们间歇性地绘制解,结果显示它收敛了。

👉参阅:计算思维 | 亚图跨际

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

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

相关文章

洗地机哪一款好用?家用洗地机推荐

洗地机是家庭必备的高效深度清洁机器,对于家庭用户而言,它可以自动吸尘、拖洗、自清洁,使用便捷高效,为众多家庭用户所欢迎。但市场上的洗地机品牌众多,很多消费者陷入了购买陷阱,为了帮助广大用户选购到合…

解决SD卡被写保护问题

存储卡在使用过程中,有时会遇到写保护问题,导致无法写入或删除数据。这可能会对用户的正常使用造成困扰。MK米客方德将为您介绍几种常见的解决方法,帮助用户解除存储卡的写保护。 一、检查物理写保护开关 许多存储卡,如SD卡&…

若依 ruoyi 显示隐藏搜索框 显示隐藏列

一、 显示隐藏搜索框 页面搜索关键字 showSearch,设置是否显示 隐藏: 显示: 二、自定义设置 显示隐藏列 1. 页面搜索关键字 right-toolbar,新增: :columns"columns" 2. js下 data(){return{}}中新增&am…

【MySQL事务】深刻理解事务隔离以及MVCC

文章目录 什么叫事务事务的提交方式常见的事务操作方式事务的开始与回滚总结 事务的隔离设置隔离级别解释脏读解释幻读解释不可重复读为什么可重复读不能解决幻读问题?总结 数据库并发的场景MVCC隐藏列字段undo日志Read view RR和RC的本质区别总结 什么叫事务 在My…

人工智能类SCI,1区TOP,3个月可录!

今天给大家推荐一本人工智能类SCIE领域的SCI,此期刊为我处目前合作的重点期刊!影响因子7.0-8.0之间,JCR1区,中科院2/1区(TOP),最重要的是审稿周期较短,对急投的学者较为友好&#xf…

搜索引擎的原理与相关知识

搜索引擎是一种网络服务,它通过互联网帮助用户找到所需的信息。搜索引擎的工作原理主要包括以下几个步骤: 网络爬虫(Web Crawler):搜索引擎使用网络爬虫(也称为蜘蛛或机器人)来遍历互联网&#…

红日靶场实战一 - 学习笔记

最近在学习红蓝对抗,如果有兴趣的可以多关注。 目录 环境搭建 靶场链接 配置网络 攻击机kali网络 配置win7 web服务器网络 配置winserver 2008网络(DC域控) 配置win2003/win2k3网路(域成员) IP配置情况 外网突破 信息收集 phpmya…

CVPR2024|vivo提出使用对抗微调获得泛化性更强的SAM,分割性能直接登顶 SOTA!

在计算机视觉不断发展的领域中,基础模型已成为一种关键工具,显示出对多种任务的出色适应性。其中,由 Meta AI 开发的 Segment Anything Model(SAM)在图像分割任务中表现杰出。然而,和其他类似模型一样&…

Java知识点整理 13 — Hutool工具库

在开发时经常需要编写很多与业务无关的代码,比如获取指定日期对象、获取本机 IP 地址、数据加密等。通常我们会将这些代码独立出来,放到 utils 目录下,作为工具类供其它代码调用。 但如果遇到一个从未接触过的领域知识,开发一个新…

《Three.JS零基础入门教程》第九篇:环境详解

往期回顾: 《Three.JS零基础入门教程》第一篇:搭建开发环境 《Three.JS零基础入门教程》第二篇:起步案例 《Three.JS零基础入门教程》第三篇:开发辅助 《Three.JS零基础入门教程》第四篇:基础变换 《Three.JS零基…

gc.log中 CMS-concurrent-abortable-preclean

问题 在gc日志中看到 2024-06-26T16:16:07.5040800: 64690272.666: [CMS-concurrent-abortable-preclean-start]CMS: abort preclean due to time 2024-06-26T16:16:12.5530800: 64690277.716: [CMS-concurrent-abortable-preclean: 1.052/5.049 secs] [Times: user1.33 sys0…

Ubuntu系统安装软件---以安装QQ为例

以安装QQ为例,首先你的Ubuntu系统需要连上网,连上网的网络状态如下图所示。 在ubuntu系统的网页中搜索QQ,如下图所示。 进入QQ官网,点击Linux,如下图所示。 随后会让你选择什么架构的版本,如何查看自己的是…

【Python机器学习】分类向量——One-Hot编码(虚拟变量)

为了学习分类特征,以某国成年人收入数据集(adult)为例,adult数据集的任务是预测一名工人的收入是高于50k还是低于50k,这个数据集的特征包括工人的年龄、雇佣方式、教育水平、性别、每周工作时长、职业等。 这个任务属于…

代码随想录算法训练营第50天(py)| 动态规划 | 1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列

1143.最长公共子序列 力扣链接 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列(未必连续) 的长度。如果不存在 公共子序列 ,返回 0 。 思路 确定dp含义 dp[i][j]:长度为[0,i-1]和[0,j-1]的最长公…

ONLYOFFICE 桌面编辑器 8.1使用体验分享

目录 编辑器市场现状与用户选择 ONLYOFFICE桌面编辑器概览和功能 ONLYOFFICE桌面编辑器概览 功能丰富的PDF编辑器 演示文稿编辑器的创新 文档编辑的灵活性 电子表格的高级功能 语言和本地化 用户界面和体验 媒体播放 云服务和本地处理 跨平台支持 总结 在线亲身体…

mapstruct实现各个实体间的类型转换(DTO转BO、BO转Entity)的实践

一、引入 在没有遇见mapstruct的时候,实现各个实体之间的转换,都是手动转换实现的,属性少一带你还好,当属性一多,代码就会变得很冗余,没必要的非逻辑的代码就会加多。。。。 比如: public cl…

vue封装原生table表格方法

适用场景:有若干个表格,前面几列格式不一致,但是后面几列格式皆为占一个单元格,所以需要封装表格,表格元素自动根据数据结构生成即可;并且用户可新增列数据。 分类: 固定数据部分 就是根据数据…

openlayers性能优化——开启图层预加载、减少空白等待时间

使用切片图层时、地图拖拽会有空白图片,为了减少空白等待时间,我们可以开始图层预加载。 const map_top new Map({layers: [new TileLayer({preload:Infinity, //预加载source: new StadiaMaps({layer: "outdoors",}),}),],target: "ma…

LINKAI工作流的建立与调试,用到COW项目的微信机器人上

连接时需要把右边的号连到下一个框的输入,开始与结束是默认的。 可以单独调试模块 可以对模块进行个性化定义 最后进行总流程调试 将这里的code放到config.json文件中 接着又做了一个较复杂的工作流DgPz9wJaoh   QlCc34a8bP 原项目网址: https:/…

【学习笔记-机器学习】感知机模型

Author:赵志乾 Date:2024-06-26 Declaration:All Right Reserved!!! 1. 基本概念 数据集的线性可分性:给定一个数据集 其中,,,,如果存在某个超平面S 能够将数…