LC 旋转 - 模拟对象

2024-06-01 02:20
文章标签 模拟 对象 旋转 lc

本文主要是介绍LC 旋转 - 模拟对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接 链接
液晶 (LC) 旋转网格属性允许您以 theta、phi 为单位指定空间变化的 LC 导向。
液晶由杆状分子结构组成,这些分子结构具有相对于长轴的旋转对称性。因此,液晶具有空间变化的单轴光学特性。 相对于分子长轴和分子短轴的折射率称为非寻常 ne 和寻常 no,见下图。
在这里插入图片描述
旋转对称性使变换矩阵简化为两个旋转角度的函数 (θ,ϕ) 的函数。
在这里插入图片描述
并且参考(或模拟)坐标系中的介电常数张量 (x,y,z)通过围绕 z 和y的旋转转换为主坐标系 (X,Y,Z)。
在这里插入图片描述

属性编辑器 "选项卡

NAME: 对象名称
ENABLED:确定模拟中是否包含对象
USE RELATIVE COORDINATES:如果启用,信号源将使用中心点或求解器作为原点(参考)。 如果禁用,则会使用绝对中心(0,0,0)作为原点。
X, Y, Z:对象的中心位置。
RESAMPLE FOR VIEWING: 如果启用,NX、NY、NZ 将用于对布局编辑器中的对象图形进行重新采样。NX、NY、NZ 是 CAD 视图中显示的最大允许分辨率。这些数字用于图形渲染,对仿真结果没有影响。这些选项仅在导入空间变化数据时可用。
X SPAN, Y SPAN, Z SPAN:对象的大小。在图形用户界面中是灰色的,不可编辑。导入空间分布数据时,数字会更新。
RESCALE AXES INDEPENDENTLY: 如果启用,则可以对 X SCALE、Y SCALE、Z SCALE 进行不同设置,以调整对象的比例。如果禁用,则 X SCALE、Y SCALE、Z SCALE 只能相同设置。这些选项仅在导入空间变化数据时可用。
ENABLE CONFORMAL MESHING:详见网格属性提示。
THETA, PHI: 定义液晶导向器方向向量。
UX, UY, UZ: 方向单元矢量。在图形用户界面中是灰色的,不可编辑。数字根据 THETA、PHI。
IMPORT DATA:导入保存在 .mat 文件中的方向单位矢量 UX、UY、UZ 或保存在 .csv 文件中的 THETA、PHI。
CLEAR DATA: 清除导入的数据。
在接下来的章节中,我们将分别解释如何设置 LCs 的均匀分布和空间变化方向分布。请注意,这些角度的定义顺序非常重要,因为旋转一般是非交换关系。

均匀分布

例如,我们将 LC 设置为 ne=1.74 和 no=1.53,其中 LC 的方向角定义为 θ =30° 和 φ =150°。在工具栏上选择属性-- LC 方向,添加 LC 属性对象。
在这里插入图片描述
并在编辑窗口中设置属性 "theta "和 “phi”,如下图所示。
在这里插入图片描述
通过设置这些角度,FDTD 会自动创建变换矩阵 U。接下来,我们打开材料数据库,定义一种对角线各向异性材料,如下图所示。注意:寻常折射率和非寻常折射率设置,必须将 nxx 和 nyy 设置为普通折射率,将 nzz 设置为超常折射率。
在这里插入图片描述
定义变换矩阵 U 和对角线折射率后,我们将其赋值给结构对象的 "材料 "选项卡上的 "材料 "和 "网格属性名称 "属性,并将其设置为liquid crystal。
在这里插入图片描述

分布指向随空间变化的液晶

方法 1:使用脚本环境导入数据

在该方法下,使用addgridattribute,并且使用importdataset脚本命令添加 LC 属性,并设置 LC 的空间变化方向。例如,如果我们要设置如下图所示在 Z 方向上扭曲的 LC,其中 LC 指向的分量为ux(x,y,z)=cos(zπ),u(x,y,z)=sin(zπ)和uz(x,y,z)=0,
在这里插入图片描述
我们在一个矩阵变量中定义了指向分布,并将矩阵放入 LC attribute property中。在下面的脚本中,矩阵 "n "用于定义扭曲向列低密度聚合体的方向分布,这些信息被放入一个名为 LC 的数据集,该数据集包含 x、y、z 位置数据和名为 "u "属性中的方向。在倒数第二行使用 addgridattribute 命令时,LC 属性被添加到模拟中,并设置了导向分布。
注意:空间变化方位单位矢量的大小。指定 LC 方向时,方向矢量的大小必须正好为 1,除非在不希望设置 LC 方向的区域,方向矢量的大小应设置为 0。

# define x/y/z
x = 0;
y = 0;
z = linspace(0e-6,5e-6,100);
X = meshgrid3dx(x,y,z);
Y = meshgrid3dy(x,y,z);
Z = meshgrid3dz(x,y,z);
n = matrix(length(x),length(y),length(z),3);# define the orientation function
n(1:length(x),1:length(y),1:length(z),1) = cos(Z*pi*1e5);
n(1:length(x),1:length(y),1:length(z),2) = sin(Z*pi*1e5);
n(1:length(x),1:length(y),1:length(z),3) = 0;# create dataset containing orientation vectors and position parameters
LC=rectilineardataset("LC",x,y,z);
LC.addattribute("u",n);# add LC import grid attribute
addgridattribute("lc orientation",LC);
setnamed("LC attribute","nz",50); # set resolution

注意:注:通过 "set "脚本命令设置角度 theta 时,输入的单位必须是弧度。例如:

setnamed("LC attribute","theta",pi/4);

然后,我们添加一种具有对角线各向异性成分的材料,并设置对象使用 LC 属性,与均匀分布的情况类似。

方法 2:使用图形用户界面从 .mat 文件导入数据

在网格属性编辑窗口中,点击 "Import data…(导入数据…)"按钮,可以导入包含所需的主任分布数据集的 .mat 文件。下面的代码举例说明了如何使用 matlabsave 脚本命令保存要导入的 .mat 文件。

# define x/y/z
x = 0;
y = 0;
z = linspace(0e-6,5e-6,100);
X = meshgrid3dx(x,y,z);
Y = meshgrid3dy(x,y,z);
Z = meshgrid3dz(x,y,z);
n = matrix(length(x),length(y),length(z),3);# define the orientation function
n(1:length(x),1:length(y),1:length(z),1) = cos(Z*pi*1e5);
n(1:length(x),1:length(y),1:length(z),2) = sin(Z*pi*1e5);
n(1:length(x),1:length(y),1:length(z),3) = 0;# create dataset containing orientation vectors and position parameters
LC=rectilineardataset("LC",x,y,z);
LC.addattribute("u",n);# save data to .mat file
matlabsave("LC_import.mat",LC);

然后,我们添加一种具有对角线各向异性成分的材料,并设置对象使用 LC 属性,与均匀分布的情况类似。

方法 3:从 CSV(逗号分隔值)文件导入数据

这种方法似乎使用了其他工具,而且提示自己创建一个合格式的csv文件不是很容易,个人就不推荐这种方法了
在顶部工具栏的导入菜单中,点击从 CSV 导入,打开导入向导,选择要导入的 CSV 文件。有关从图形向导导入数据的文件格式和步骤的详细信息,请参阅从 CSV 导入对象 - 液晶。
在这里插入图片描述

同样的数据也可以使用 importcsvlc 脚本命令导入。

这篇关于LC 旋转 - 模拟对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019715

相关文章

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

SpringMVC高效获取JavaBean对象指南

《SpringMVC高效获取JavaBean对象指南》SpringMVC通过数据绑定自动将请求参数映射到JavaBean,支持表单、URL及JSON数据,需用@ModelAttribute、@Requ... 目录Spring MVC 获取 JavaBean 对象指南核心机制:数据绑定实现步骤1. 定义 Ja

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一