vibstring_circle
Graham Dennis
Vibrating string with Dirichlet boundary conditions on a circle.
const real T = 10.0; const real mass = 1e-3; const real length = 1.0; const real mu = mass/length; const real T_mu = T/mu;

const real xmax = _max_x; const real width = 0.1; const real absorb = 80.0;
t
u uDot
u = exp(-100.0*((x-0.5)*(x-0.5) + y*y)); uDot = 0.0;
bc
real r = sqrt(x*x + y*y); real rright = xmax-width; real rdamping = r > rright ? absorb*(1-cos(M_PI*(r - rright)/width)) : 0.0;

bc = exp(-rdamping); if (r > xmax) bc = 0.0; if ( r > rright) bc = 0.0; else bc = 1.0;

50
L
L = -T_mu*(kx*kx + ky*ky);
main
boundary
du_dt = uDot; duDot_dt = bc*L[u];
amp
main
amp = u.Re();