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

news2024/11/20 8:38:19

🎯要点

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

📜泊松方程 | 本文 - 用例

📜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**2
            A[i,j,i,j] = -4/dx**2
    
   
    for 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] = 1
    
    
    set_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.coloradmin.cn/o/1855343.html

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

相关文章

学习VXLAN -- 报文结构、原理和配置

目录 VXLAN背景什么是VXLANVXLAN的优势VXLAN报文结构一些特定名词BDVBDIFVAPVSIVSI-InterfaceAC VXLAN的实现原理图VXLAN MAC地址表项MAC地址动态学习 VXLAN隧道VXLAN隧道工作模式L2 GatewayIP Gateway VXLAN隧道的建立与关联VXLAN隧道建立的方式VXLAN对到与VXLAN关联的方式 配…

系统思考与创新解决

圆满结束了为期两天的《系统思考》课程。在这次学习中,大家积极使用系统环路图来分析并呈现跨部门的业务协同问题,以及探讨了推动成长环路背后的限制因素。这不仅增强了团队之间的理解和合作,也帮助我们一起识别阻碍组织发展的关键挑战。期待…

obsidian中用check list 打造待办清单

背景 在快节奏的现代生活中,有效管理个人时间和任务成为提升生活与工作效率的关键。 Obsidian,作为一款强大的知识管理和笔记应用,通过其丰富的插件生态,为我们提供了高度自定义的任务管理解决方案。本文旨在详细介绍如何在Obsid…

AI应用带你玩系列之SadTalker

前段时间我刷微信视频,我无意间点开了一个,画面缓缓展开,是一幅精致的水墨画,画中人物皆是古代装束,衣袂飘飘,仿佛能闻到墨香。然而,这宁静的画面突然被打破了,画中的人物开始动了起…

自动驾驶仿真Carla -ACC功能测试

我将详细说明如何使用Carla进行ACC(自适应巡航控制)测试,确保每个步骤贴合实际的Carla自动驾驶仿真标准,并提供相应的代码示例。 使用Carla进行ACC测试的步骤: 1. 环境设置和启动Carla 首先,确保你已经安装…

在vue项目中集成cesium

首先创建一个新的vue项目 安装vite中cesium插件 https://github.com/nshen/vite-plugin-cesium 安装插件 npm i cesium vite-plugin-cesium vite -D配置插件 注释原有样式 修改代码 效果

重学java 79.JDK新特性 ⑤ JDK8之后的新特性

别怕失败,大不了重头再来 —— 24.6.20 一、接口的私有方法 Java8版本接口增加了两类成员: 公共的默认方法 公共的静态方法 Java9版本接口又新增了一类成员: 私有的方法 为什么IDK1.9要允许接口定义私有方法呢? 因为我们说接口是规范,规范是…

AI 大模型企业应用实战(08)-LangChain用prompts模板调教LLM的输入输出

超越chatGPT:学习使用prompts模板来调教LLM的输入输出,打造自己版本的"贾维斯" 1 Model I/O:LLM的交互接口 任何语言模型应用程序的核心要素都是......模型。LangChain 为您提供了与任何语言模型连接的构件。 即 Prompts -> Language mod…

免费ddns工具,快解析DNS解析使用教程

DDNS(Dynamic Domain Name Server),中文叫动态域名解析,主要用于没有固定公网ip的网络环境下,使用一个固定的域名,解析动态变化的ip地址,达到远程访问的目的。 众所周知,目前公网ip资源非常紧缺…

昇思25天学习打卡营第6天|使用静态图加速

学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) 背景介绍 AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。两种运行模式的详细介…

MySQL数据库(三):读取数据库数据

上一节,我们介绍了数据库的基本操作,以及最后演示了如何使用库来连接数据库,在实际应用中,我们通常需要按照指定的条件对数据库进行操作,即增删改查操作,这是非常重要的!这一节我们继续通过一个…

【电源专题】案例:电量计遇到JEITA充电芯片,在高温下无法报百怎么办?

在使用电量计芯片时,我们期望的是在产品工作温度下、在产品最低和正常充电电流下都要能报百。 所谓报百,就是电量计RSOC(电量百分比)能到达100%。这看起来简单,如果是常规的操作的话,那么电压达到充电截止要求、电流达到充电截止要求、容量累积变化满足要求,RSOC=100%肯…

数据清洗!即插即用!异常值、缺失值、离群值处理、残差分析和孤立森林异常检测,确保数据清洗的全面性和准确性,MATLAB程序!

适用平台:Matlab2021版及以上 数据清洗是数据处理和分析中的一个关键步骤,特别是对于像风电场这样的大型、复杂数据集。清洗数据的目的是为了确保数据的准确性、一致性和完整性,从而提高数据分析的质量和可信度,是深度学习训练和…

面向卫星遥感的红外微小舰船目标检测方法:MTU-Net

论文简介 空间红外微小舰船检测旨在从地球轨道卫星所拍摄的图像中识别并分离出微小舰船。由于图像覆盖面积极其广大(如数千平方公里),这些图像中的候选目标相比空中或地面成像设备观测到的目标,尺寸更小、亮度更低且变化更多。现有…

详细分析Springmvc中的@ModelAttribute基本知识(附Demo)

目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上,或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景: 表单…

图形编辑器基于Paper.js教程03:认识Paper.js中的所有类

先来认一下Paper的资源对象,小弟有哪些,有个整体的认识。认个脸。 在Paper.js的 官方文档中类大致有如下这些: 基类: ProjectViewItemPointToolSizeSegmentRectangleCurveCurveLocationMatrixColorStyleTweenToolEventGradient…

用于射频功率应用的氮化铝电阻元件

EAK推出了新的厚膜氮化铝 (AlN) 电阻器和端接系列,以补充公司现有的产品。传统上,射频功率电阻元件采用氧化铍(BeO)陶瓷材料作为陶瓷基板;然而,由于国际上要求从产品中去除BeO的压力&#xff0c…

26.3 Django路由层

1. 路由作用 在Django中, URL配置(通常称为URLconf)是定义网站结构的基础, 它充当着Django所支撑网站的目录. URLconf是一个映射表, 用于将URL模式(patterns)映射到Python的视图函数或类视图上. 这种映射机制是Django处理HTTP请求的基础, 它决定了当客户端发送请求时, Django如…

RabbitMQ实践——临时队列

临时队列是一种自动删除队列。当这个队列被创建后,如果没有消费者监听,则会一直存在,还可以不断向其发布消息。但是一旦的消费者开始监听,然后断开监听后,它就会被自动删除。 新建自动删除队列 我们创建一个名字叫qu…

MM-LLM:CogVLM解读

在图文多模态模型中,范式是图像的编码器、文本编码器、模态融合器。也就是不同模态特征抽取加模态对齐。 这部分可以看李沐的精讲 在大模型里的范式在也是如此,目前的工作大部分都专注于怎么拉齐不同模态。 该论文的动机(背景)&…