Example #1
0
import time
import os

torch.manual_seed(1)
torch.set_num_threads(4)
np.random.seed(6)

mu = params.mu
rho = params.rho
dt = params.dt
w, h = params.width, params.height
n_time_steps = params.average_sequence_length
save_movie = False  #True#

# load fluid model:
logger = Logger(get_param.get_hyperparam(params),
                use_csv=False,
                use_tensorboard=False)
fluid_model = toCuda(get_Net(params))
date_time, index = logger.load_state(fluid_model,
                                     None,
                                     datetime=params.load_date_time,
                                     index=params.load_index)
fluid_model.eval()
print(f"loaded {params.net}: {date_time}, index: {index}")

# setup opencv windows:
cv2.namedWindow('legend', cv2.WINDOW_NORMAL)  # legend for velocity field
vector = torch.cat([
    torch.arange(-1, 1, 0.01).unsqueeze(0).unsqueeze(2).repeat(1, 1, 200),
    torch.arange(-1, 1, 0.01).unsqueeze(0).unsqueeze(1).repeat(1, 200, 1)
Example #2
0
print(f"Parameters: {vars(params)}")

mu = params.mu
rho = params.rho
dt = params.dt

# initialize fluid model
fluid_model = toCuda(get_Net(params))
fluid_model.train()

# initialize Optimizer
optimizer = Adam(fluid_model.parameters(), lr=params.lr)

# initialize Logger and load model / optimizer if according parameters were given
logger = Logger(get_hyperparam(params),
                use_csv=False,
                use_tensorboard=params.log)
if params.load_latest or params.load_date_time is not None or params.load_index is not None:
    load_logger = Logger(get_hyperparam(params),
                         use_csv=False,
                         use_tensorboard=False)
    if params.load_optimizer:
        params.load_date_time, params.load_index = logger.load_state(
            fluid_model, optimizer, params.load_date_time, params.load_index)
    else:
        params.load_date_time, params.load_index = logger.load_state(
            fluid_model, None, params.load_date_time, params.load_index)
    params.load_index = int(params.load_index)
    print(f"loaded: {params.load_date_time}, {params.load_index}")
params.load_index = 0 if params.load_index is None else params.load_index
Example #3
0
import numpy as np
from setups import Dataset
from derivatives import dx,dy,laplace
from torch.optim import Adam

#torch.manual_seed(0)
#np.random.seed(0)

#date_time: 2020-01-08 12:15:30 index 70 gibt verhalten, das ähnlich wie karman street aussieht (bei v=-0.79/-1)

mu = params.mu
rho = params.rho
w,h = params.width,params.height
plot = True

logger = Logger(get_param.get_hyperparam(params),use_csv=False,use_tensorboard=False)
pde_cnn = PDE_UNet().cuda()
date_time,index = logger.load_state(pde_cnn,None,datetime=params.load_date_time,index=params.load_index)

print(f"date_time: {date_time}; index: {index}")

with torch.no_grad():
	for epoch in range(10):
		dataset = Dataset(w,h,1,1)
		for t in range(5000):
			v_cond,cond_mask,flow_mask,v_old,p_old = toCuda(dataset.ask())
			
			v_new,p_new = pde_cnn(v_old,p_old,flow_mask,v_cond,cond_mask)
			
			loss_bound = torch.mean(cond_mask*(v_new-v_cond)**2)
			v_new = cond_mask*v_cond+flow_mask*v_new