test_subs - Generate equations from variational forms
Calling sequence:
test_subs(test_list,testfcn,expr)
Parameters
test_list - a list of test functions
test_fcn - a name of a variable to be used as a test function
expr - An expression.
Synopsis:
Examples:
> ueq:=0=diff(u(x),x,x);
2
d
ueq := 0 = --- u(x)
2
dx
> veq:=u(x)=diff(v(x),x,x);
2
d
veq := u(x) = --- v(x)
2
dx
> varForm:=ElementInt(ut(x) * (lhs(ueq)-rhs(ueq)))+
ElementInt(vt(x) * (lhs(veq)-rhs(veq))) =0:
> pivarForm:=partInt(varForm,[u(x),v(x)]):
> BCpivarForm:=BCsubs([diff(u(x),x)=q,diff(v(x),x)=0],pivarForm);
/d \ /d \
BCpivarForm := ElementInt(|-- u(x)| |-- ut(x)|)
\dx / \dx /
- BoundaryInt(BdNx q ut(x)) + ElementInt(vt(x) u(x))
/d \ /d \
+ ElementInt(|-- v(x)| |-- vt(x)|) = 0
\dx / \dx /
> eqns:=test_subs([ut(x),vt(x)],test(x),BCpivarForm):
> eqns[1];eqns[2];
/d \ /d \
ElementInt(|-- u(x)| |-- test(x)|) - BoundaryInt(BdNx q test(x)) = 0
\dx / \dx /
/d \ /d \
ElementInt(test(x) u(x)) + ElementInt(|-- v(x)| |-- test(x)|) = 0
\dx / \dx /