示例#1
0
from fdtd import fdtd_gen

CONST_c = 299792458

# PARAMETROS DA SIMULAÇÃO
dt = 1e-8

dx = CONST_c * dt / 1.0005


def fonte(t):
    return 1 * math.exp(-((t - .4e-6)**2) / (.15e-6**2))


# GERADORES PARA OS DIFERENTES S
gen = fdtd_gen(fonte, dt, [(120, 1), (1, 1.022), (120, 1)])

for n in range(200):
    U1 = next(gen)

for n in range(20):
    U2 = next(gen)

# ler os resultados e fazer um grafico
data = ([{
    'x': i * dx,
    'u': U1[i],
    'n': 200
} for i in range(len(U1))] + [{
    'x': i * dx,
    'u': U2[i],
示例#2
0
# PARAMETROS DA SIMULAÇÃO
dt = 1e-8

dx1 = CONST_c * dt / 1
dx09 = CONST_c * dt / 0.99
dx05 = CONST_c * dt / 0.5


# FUNÇÃO DA FONTE (PULSO GAUSSIANO)
def fonte(t):
    return 1 * math.exp(-((t - .4e-6)**2) / (.15e-6**2))


# GERADORES PARA OS DIFERENTES S
gen1 = fdtd_gen(fonte, dt, [(math.ceil(500 / dx1), 1)])
gen09 = fdtd_gen(fonte, dt, [(math.ceil(500 / dx09), 0.99)])
gen05 = fdtd_gen(fonte, dt, [(math.ceil(500 / dx05), 0.5)])

#Simular 120 iterações
U = U09 = U05 = []
for n in range(120):
    U = next(gen1)
    U09 = next(gen09)
    U05 = next(gen05)

# ler os resultados da ultima iteração e fazer um grafico
data = ([{
    'x': i * dx1,
    'u': U[i],
    'S': 1
示例#3
0
from fdtd import fdtd_gen

CONST_c = 299792458

# PARAMETROS DA SIMULAÇÃO
dt = 1e-8

dx = CONST_c * dt / 1.0005


def fonte(t):
    return 1 * math.exp(-((t - .4e-6)**2) / (.15e-6**2))


# GERADORES PARA OS DIFERENTES S
gen = fdtd_gen(fonte, dt, [(250, 1.0005)])

for n in range(180):
    U1 = next(gen)

for n in range(10):
    U2 = next(gen)

for n in range(10):
    U3 = next(gen)

# ler os resultados e fazer um grafico
data = ([{
    'x': i * dx,
    'u': U1[i],
    'n': 180
示例#4
0
# Este script utiliza pandas + plotly express para plotar os resultados da simulação fdtd realizada
# de forma a obter os resultados da fig 2.5 do Taflove

import math
import pandas as pd
import plotly.express as px
from fdtd import fdtd_gen

CONST_c = 299792458

# PARAMETROS DA SIMULAÇÃO
dt = 1e-8

dx = CONST_c * dt / 1.0005


def fonte(t):
    return 1 * math.exp(-((t - .4e-6)**2) / (.15e-6**2))


# GERADORES PARA OS DIFERENTES S
gen = fdtd_gen(fonte, dt, [(180, 1), (40, 0.25)])

for n in range(270):
    U1 = next(gen)

# ler os resultados e fazer um grafico
data = ([{'x': i * dx, 'u': U1[i], 'n': 270} for i in range(len(U1))])
fig = px.line(pd.DataFrame(data=data), x='x', y='u', color='n')
fig.show()