Tap to unmute

Lecture 3 (FDTD) -- Building geometries in data arrays

  Рет қаралды 32,110

EMPossible

EMPossible

Күн бұрын

Пікірлер: 78
@hussain55019
@hussain55019 7 жыл бұрын
Great video..You are really awesome Sir..Love,Respect and Best Wishes.
@QuentinLee2014
@QuentinLee2014 10 жыл бұрын
The method to define an area is great! A bunch of geometry, such as square, circle, and ellipse, with a certain physical size could be defined in grids with integer numbers. This may make it is easy to solve the Maxwell's equation in a certain area. For instance in a sphere shaped Ag nanoparticles. People could try to numerate the partial difference equation in the grids with finite cells method. One word to declare, Great!
@shawnfang431
@shawnfang431 7 жыл бұрын
Great video!!! Thank you so much, I learn so much from your lecture. Wish you could share more videos.
@empossible1577
@empossible1577 7 жыл бұрын
Thank you! There are plenty more videos on this channel. Also, you should visit the course websites where you can get the latest version of the notes and other resources to help you. Here is where the course websites are kept: emlab.utep.edu/academics.htm
@saptarshimandal6453
@saptarshimandal6453 6 жыл бұрын
Thank you sir !
@VikramReddyAnapana
@VikramReddyAnapana 4 жыл бұрын
Wonderful videos always. I keep watching your videos sir. Highly informative and you cover all meticulous details. Can I work under your guidance sir
@empossible1577
@empossible1577 4 жыл бұрын
I am very happy to hear the materials are helping you! Keep in touch via emlab.utep.edu. We do not currently have any open opportunities. I hope that changes soon!
@VikramReddyAnapana
@VikramReddyAnapana 4 жыл бұрын
@@empossible1577 Thanks a trillion, sir, for your response. Hoping I may get an opportunity some time to work under your esteemed guidance
@shobhitmishra1822
@shobhitmishra1822 9 жыл бұрын
In slide 23, nx and ny are positions in vertical and horizontal respectively but the figures illustrates it totally differently. 1s should be filled in row 3 till row 6 and column 4 till column 8 as per the codes on the right.
@empossible1577
@empossible1577 7 жыл бұрын
I see you posted this one year ago. Sorry I did notice it until now. You are sort of correct. The name MATLAB is an acronym for "MATrix LABoratory." It assumes everything is a matrix where the convention is A(row,column). It assumes this whether or not the array is a matrix or just an ordinary array. In this context, you are exactly right. However, it is my experience in computation that students have the most trouble building geometries into arrays before the simulation is even performed. In this case, we more intuitively think in terms of f(x,y). After some thought, you will realize that A(row,column) is a bit like f(y,x) instead of f(x,y). This makes it very confusing to build devices into arrays, which are not matrices. So, I like to build things in arrays in the context of f(x,y). The only time this is not really compatible with MATLAB is when graphics are drawn. You just have to remember to transpose or rotate your data before plotting. Unfortunately, I have not found a more intuitive way through this. Hope this makes sense!
@mikefredd3390
@mikefredd3390 8 жыл бұрын
This is an amazing resource. I'm translating to python so it is a little tedious for me. Does this group have a website and a general purpose?
@empossible1577
@empossible1577 8 жыл бұрын
You can go to our research website here: emlab.utep.edu/ If you click on 'Academics' you can get to the course website for several classes. This one is "Electromagnetic Analysis Using Finite-Difference Time-Domain." The next course is "Computational Electromagnetics" and then "21st Century Electromagnetics." The websites contain links to the recorded lectures, PDFs of the lecture notes, and other resources. I have made many revisions, corrections, and improvements to the notes so they may differ from the notes in the recordings a little bit. The general purpose of these lectures is to provide an introduction to computational electromagnetics for the complete novice. I found it very hard to get started in CEM simply because there were no resources simple enough for me to understand easily. These lectures were created with that in mind and I am always trying to improve them without over complicating them.
@TheSakr289
@TheSakr289 6 ай бұрын
Great video.... How to add triangular geometry?
@empossible1577
@empossible1577 6 ай бұрын
Checkout the videos in Topic 2a here. This is where I cover these types of skills. empossible.net/academics/emp4301_5301/ You may also be interested in Chapter 1 of my recent book where I also cover these types of skills. empossible.net/fdfdbook/
@atsul.7943
@atsul.7943 8 жыл бұрын
Very very help resource. Thanks very much.
@ruiwang9856
@ruiwang9856 4 жыл бұрын
Hi Professor, at 25:00, if my understanding is correct, we can simply use [X,Y]=meshgrid[xa,ya] in the current Matlab version, right? I feel a few changes are made in the mesh grid function in the new version, Here is the link: www.mathworks.com/help/matlab/ref/meshgrid.html Thanks.
@empossible1577
@empossible1577 4 жыл бұрын
I was not aware anything had changed. When I use meshgrid, it is usually [Y,X] = meshgrid(y,x). The order is important.
@winnis88
@winnis88 8 жыл бұрын
Thank you, I rmember having this trouble when I was coding the FDFD in CEM lectures.
@empossible1577
@empossible1577 8 жыл бұрын
The intended sequence for these courses is: 1. FDTD 2. CEM 3. EM21
@luiseduardojatarmontano1983
@luiseduardojatarmontano1983 4 жыл бұрын
Hello. This is a really nice video, but I would like to ask something: 1) You only assign values of 1 and 0, if you want to be more precise, can you assign values between 0 and1 which means the cell is almost empry or almost full? 2)Here you worked with basic geometries, but if you want to generaliize to a more complex problem how can you use this method for another geometries not so easily to parametrize with an equation?
@empossible1577
@empossible1577 4 жыл бұрын
Great questions! 1) It is absolutely possible to assign values between 0 and 1. In fact, this is often preferred to simulate curved surfaces. I usually do not do this until the final device is constructed, and then I smooth the edges a bit. That is because boolean operations on grayscale objects can be difficult. 2) I usually think of complicated shapes as combinations of simple shapes. For example, a house is a triangle on top of a square. For really complicated shapes, I may import something from a CAD file, voxelize it, and put it on a grid.
@luiseduardojatarmontano1983
@luiseduardojatarmontano1983 4 жыл бұрын
@@empossible1577 Thanks for your answer, later if you could do something importing a complex geometry would be nice, I already did but my code is slow, I used boolean operations with polygons intersecting the mesh with an object.
@empossible1577
@empossible1577 4 жыл бұрын
@@luiseduardojatarmontano1983 You can import images. It will be necessary to flatten then to a single array and then convert to permittivity values. You can also import CAD files and voxelize them using any number of codes users have contributed to Mathworks.
@AnubhabHaldarChronum
@AnubhabHaldarChronum 7 жыл бұрын
You mentioned how it'd take ~110 GB to solve this using a direct LU-like method. However, typically systems of this size are likely to be solved by iterative methods like BiCGStab(L) or relaxation-like methods, where the memory requirements remain manageable. Is there a reason why you specifically mentioned a direct method, or was that just to generally make a case about the shortcomings of sparse-matrix based methods?
@empossible1577
@empossible1577 7 жыл бұрын
Yes, it was a general statement. Sorry that was not clear and thank you for pointing this out.
@f4dy
@f4dy 7 жыл бұрын
I think at 13:42 you meant the Y direction, am I right? Your videos are amazing and indescribably helpful!
@empossible1577
@empossible1577 7 жыл бұрын
Oops! Yes, I said 'z' but meant to say 'y.' Sorry and great catch!
@remagairsoftllc
@remagairsoftllc 6 жыл бұрын
Are the arrays in the slides rotated from what the code does? Mine are all coming back rotated/flipped?
@empossible1577
@empossible1577 6 жыл бұрын
Yes. I do talk about this somewhere in the lecture. MATLAB treats everything as a matrix. That is why array indices start at 1 instead of 0. It is also the reason for the rotation. In matrix notation, the first array index is the row number, or vertical position in the array. The second number is the column, or horizontal position. This means if you are building a function, you must interpret it as f(y,x) instead of f(x,y). From experience, I have found it most straightforward to treat arrays as in any other language, like f(x,y). That makes building devices on the arrays more intuitive. However, if you visualize the arrays using MATLAB graphics functions, they come out rotated. This is easily fixed by simply transposing the array before plotting that. That is why you see me use commands like imagesc(xa,ya,ER'); Notice the transpose on ER?
@jayshah5949
@jayshah5949 7 жыл бұрын
Thank you for such wonderful lectures. How can I build a cylindrical geometry of some random radius 'r' in 3 dimension? I understood how to use meshgrid for determining the radius of the circle but if now i want to give it a depth as well how is it possible? Please suggest.
@empossible1577
@empossible1577 7 жыл бұрын
Yes, absolutely. You can do this using the exact same techniques. For example... [Y,X,Z] = meshgrid(ya,xa,za); RSQ = X.^2 + Y.^2 + Z.^2; ER2 = RSQ
@jayshah5949
@jayshah5949 7 жыл бұрын
THank you for your reply but I am looking to make a cylindrical geometry not the spherical one. for example a cylindrical bar made of steel is embedded in wood. So i basically want to assign different material properties.
@empossible1577
@empossible1577 7 жыл бұрын
[Y,X,Z] = meshgrid(ya,xa,za); RSQ = X.^2 + Y.^2; ER2 = (RSQ < r^2); This code builds a 3D cylinder with the uniform axis in the z-direction.
@jayshah5949
@jayshah5949 7 жыл бұрын
Yeah it worked. Thanks for your help.
@jayshah5949
@jayshah5949 7 жыл бұрын
What to do in case of a cylindrical geometry but with a finite depth. For example i want a 3D cube of material A with dimension 'a x a x a' and then i want a cylindrical geometery in it having a certain depth (lets say a/2). How to control the depth of cylindrical geometry?
@kiavashkiaee5565
@kiavashkiaee5565 7 жыл бұрын
Why don't you just use colon instead of "direct array" at about 8:20? like: 0:1:10 going from 0 to 10 with step size being 1.
@empossible1577
@empossible1577 7 жыл бұрын
I could for this specific case. The code as written on this slide is more versatile I think.
@QuentinLee2014
@QuentinLee2014 10 жыл бұрын
There seems something wrong with the codes in slide 28, which tried to determine an area with waving edge along the x axis above 0 in y axis. One should note that the math function y(x) is different from an array A (nx, ny) in MATLAB. In math, the y value is in y axis, and x value in x axis. But in MATLAB, the row column represent the value in y axis. The code "A(nx,1:ny)=1;" should be A(1:ny, nx)=1.
@nag4741
@nag4741 10 жыл бұрын
what is the function i have to use to display the diagrams in slides 18,25,26?
@nag4741
@nag4741 10 жыл бұрын
that matlab codes are not working...please send me the correct codes(slides 18,25,26,28)....my email is nag.474@gmail.com
@empossible1577
@empossible1577 10 жыл бұрын
As for the indexing, see slides 19-22 in the latest version of the electronic notes where I talk about this. MATLAB assumes everything is a matrix so it indexes things more like f(y,x). I have found that building geometries on arrays is a very confusing topic for students and it is more intuitive to build things thinking like f(x,y). For this reason, we build things as f(x,y), but then we have to rotate the array before displaying to the screen. Again, see slides 19-22 where I talk about this.
@empossible1577
@empossible1577 10 жыл бұрын
That I know of, there is no built in function to create these plots. I setup a double loop (x and y) and used fill() to create the squares and text() to place the numbers in the squares.
@nag4741
@nag4741 10 жыл бұрын
CEM Lectures thank you sir... how we do the matrices for 3 dimensions? suppose we have to assign some dielectric constant for substrate which has length,width and height also...for more than one substrate, how can we assign values using matlab code?
@PhysicsKeeBuniyaad
@PhysicsKeeBuniyaad 4 жыл бұрын
Thank you sir, But I want to make a cone in 3D.. Please help me. Give me some idea
@empossible1577
@empossible1577 4 жыл бұрын
This is pretty simple code, but you can modify it as you need... % 3D MESHGRID xa = linspace(-1,1,20); ya = linspace(-1,1,20); za = linspace(0,3,30); [Y,X,Z] = meshgrid(ya,xa,za); % MAKE CONE R = 0.9; C = (X.^2 + Y.^2)
@PhysicsKeeBuniyaad
@PhysicsKeeBuniyaad 4 жыл бұрын
@@empossible1577 Thank you thank you so much Sir
@PhysicsKeeBuniyaad
@PhysicsKeeBuniyaad 4 жыл бұрын
@@empossible1577 I'm so happy
@PhysicsKeeBuniyaad
@PhysicsKeeBuniyaad 4 жыл бұрын
@@empossible1577 Thank you very much Sir, I have done cone, sphere, cylinder and some combinational structure like cylinder-cone and cylinder-hemisphere. One more thing now I want to do complex structure so for that can I import any geometry from CAD model. Ya is there any other way to make complex structure like jet plane.
@empossible1577
@empossible1577 4 жыл бұрын
@@PhysicsKeeBuniyaad I would import an STL file of the plane and then use a function like voxelize() from Mathworks website to convert to points in an array.
@سعديةأحمد-س7ك
@سعديةأحمد-س7ك 10 жыл бұрын
thank you
Lecture 4 (FDTD) -- Electromagnetics and FDTD
49:20
EMPossible
Рет қаралды 42 М.
Lecture 1 (FDTD) -- Introduction
16:00
EMPossible
Рет қаралды 101 М.
Quando eu quero Sushi (sem desperdiçar) 🍣
00:26
Los Wagners
Рет қаралды 15 МЛН
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
Lecture 0 (FDTD) -- Rules and policies
22:40
EMPossible
Рет қаралды 48 М.
Lecture 2 (FDTD) -- MATLAB introduction and graphics
1:14:42
EMPossible
Рет қаралды 98 М.
Lecture 9 (FDTD) -- Examples of 1D FDTD
19:14
EMPossible
Рет қаралды 15 М.
Lecture 5 (FDTD) -- Formulation of 1D FDTD
46:03
EMPossible
Рет қаралды 51 М.
Lecture 6 (FDTD) -- Implementation of 1D FDTD
52:32
EMPossible
Рет қаралды 40 М.
Lecture 11 (FDTD) -- Formulation of 2D FDTD without PML
36:00
EMPossible
Рет қаралды 22 М.
Lecture 7 (FDTD) -- Learning from 1D FDTD
55:49
EMPossible
Рет қаралды 25 М.
Lecture 1 (CEM) -- Introduction to CEM
1:02:28
EMPossible
Рет қаралды 77 М.
What is mathematical thinking actually like?
9:44
Benjamin Keep, PhD, JD
Рет қаралды 10 М.
Quando eu quero Sushi (sem desperdiçar) 🍣
00:26
Los Wagners
Рет қаралды 15 МЛН