vibstring_dirichlet_boundary2
Graham Dennis
Vibrating string with Dirichlet boundary conditions.

This script is the second of two scripts that demonstrate how to refine or coarsen a grid between simulations. This simulation loads the final state of the previous simulation (vibstring_dirichlet_boundary.xmds) and initialises from the results of that simulation in Fourier space, but with a higher (spatial) resolution. Because the spatial grid widths are the same, the step size in Fourier space is the same, and so the higher resolution simulation simply initialises the lower kx values from the results of the lower resolution simulation and all higher fourier components are set to zero.
const real T = 10.0; const real mass = 1e-3; const real length = 1.0; const real mu = mass/length;

const real xmax = _max_x; const real width = 0.1;
t
u uDot
vibstring_dirichlet_boundary.h5
bc
real r = abs(x); real rright = xmax-width;

if ( r > rright) bc = 0.0; else bc = 1.0;

500
L
L = -T*kx*kx/mu;
main
boundary
du_dt = uDot; duDot_dt = bc*L[u];
amp
main
amp = u.Re();