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

相关文章

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

Java实现将byte[]转换为File对象

《Java实现将byte[]转换为File对象》这篇文章将通过一个简单的例子为大家演示Java如何实现byte[]转换为File对象,并将其上传到外部服务器,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言1. 问题背景2. 环境准备3. 实现步骤3.1 从 URL 获取图片字节数据3.2 将字节数组

Javascript访问Promise对象返回值的操作方法

《Javascript访问Promise对象返回值的操作方法》这篇文章介绍了如何在JavaScript中使用Promise对象来处理异步操作,通过使用fetch()方法和Promise对象,我们可以从... 目录在Javascript中,什么是Promise1- then() 链式操作2- 在之后的代码中使

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

SpringBoot实现导出复杂对象到Excel文件

《SpringBoot实现导出复杂对象到Excel文件》这篇文章主要为大家详细介绍了如何使用Hutool和EasyExcel两种方式来实现在SpringBoot项目中导出复杂对象到Excel文件,需要... 在Spring Boot项目中导出复杂对象到Excel文件,可以利用Hutool或EasyExcel

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

Java对象和JSON字符串之间的转换方法(全网最清晰)

《Java对象和JSON字符串之间的转换方法(全网最清晰)》:本文主要介绍如何在Java中使用Jackson库将对象转换为JSON字符串,并提供了一个简单的工具类示例,该工具类支持基本的转换功能,... 目录前言1. 引入 Jackson 依赖2. 创建 jsON 工具类3. 使用示例转换 Java 对象为

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行