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],
# 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
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
# 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()