2 |
# |
# |
3 |
# $Id$ |
# $Id$ |
4 |
|
|
5 |
|
__copyright__=""" Copyright (c) 2006 by ACcESS MNRF |
6 |
|
http://www.access.edu.au |
7 |
|
Primary Business: Queensland, Australia""" |
8 |
|
__license__="""Licensed under the Open Software License version 3.0 |
9 |
|
http://www.opensource.org/licenses/osl-3.0.php""" |
10 |
from esys.escript import * |
from esys.escript import * |
11 |
from esys.linearPDEs import * |
from esys.escript.linearPDEs import * |
12 |
import esys.finley as finley |
from esys import finley |
13 |
from math import * |
from math import * |
14 |
|
|
15 |
global seed |
global seed |
121 |
return out |
return out |
122 |
|
|
123 |
|
|
124 |
def eval(u,this): |
def evaluate(u,this): |
125 |
x=this.getX() |
x=this.getX() |
126 |
if u.rank==2: |
if u.rank==2: |
127 |
out=Data(value=0,shape=(u.shape[0],),what=this,expand=True) |
out=Data(value=0,shape=(u.shape[0],),what=this,expand=True) |
177 |
# u=numarray.zeros([numComp,len_Basis]) |
# u=numarray.zeros([numComp,len_Basis]) |
178 |
# u[0,0]=1 |
# u[0,0]=1 |
179 |
# u[0,1]=1 |
# u[0,1]=1 |
180 |
U=eval(u,nodes) |
U=evaluate(u,nodes) |
181 |
gradu=algebraicGrad(u) |
gradu=algebraicGrad(u) |
182 |
# |
# |
183 |
# test A: |
# test A: |
198 |
text="A[%d,%d,%d,%d]"%(p,i,q,j) |
text="A[%d,%d,%d,%d]"%(p,i,q,j) |
199 |
x=mult4(c_A,gradu) |
x=mult4(c_A,gradu) |
200 |
mypde1=LinearPDE(mydomain) |
mypde1=LinearPDE(mydomain) |
201 |
mypde1.setValue(A=c_A2,X=eval(x,elem)) |
mypde1.setValue(A=c_A2,X=evaluate(x,elem)) |
202 |
mypde1.setReducedOrderForSolutionsTo(reduce) |
mypde1.setReducedOrderForSolutionTo(reduce) |
203 |
checkSystem(text+" const with X",mypde1.getOperator(),U,mypde1.getRightHandSide()) |
checkSystem(text+" const with X",mypde1.getOperator(),U,mypde1.getRightHandSide()) |
204 |
# check div( A grad(u) ) = Y |
# check div( A grad(u) ) = Y |
205 |
y=-algebraicDiv(x) |
y=-algebraicDiv(x) |
206 |
mypde2=LinearPDE(mydomain) |
mypde2=LinearPDE(mydomain) |
207 |
mypde2.setValue(Y=eval(y,elem),y=matmult(eval(x,face_elem),nrml)) |
mypde2.setValue(Y=evaluate(y,elem),y=matrixmult(evaluate(x,face_elem),nrml)) |
208 |
mypde2.setReducedOrderForSolutionsTo(reduce) |
mypde2.setReducedOrderForSolutionsTo(reduce) |
209 |
checkSystem(text+" const with Y",mypde1.getOperator(),U,mypde2.getRightHandSide()) |
checkSystem(text+" const with Y",mypde1.getOperator(),U,mypde2.getRightHandSide()) |
210 |
|
|
219 |
text="B[%d,%d,%d]"%(p,i,q) |
text="B[%d,%d,%d]"%(p,i,q) |
220 |
x=mult3_2(c_B,u) |
x=mult3_2(c_B,u) |
221 |
mypde1=LinearPDE(mydomain) |
mypde1=LinearPDE(mydomain) |
222 |
mypde1.setValue(B=c_B2,X=eval(x,elem)) |
mypde1.setValue(B=c_B2,X=evaluate(x,elem)) |
223 |
mypde1.setReducedOrderForSolutionsTo(reduce) |
mypde1.setReducedOrderForSolutionsTo(reduce) |
224 |
checkSystem(text+" const with X",mypde1.getOperator(),U,mypde1.getRightHandSide()) |
checkSystem(text+" const with X",mypde1.getOperator(),U,mypde1.getRightHandSide()) |
225 |
# check div( B u ) = Y |
# check div( B u ) = Y |
226 |
y=-algebraicDiv(x) |
y=-algebraicDiv(x) |
227 |
mypde2=LinearPDE(mydomain) |
mypde2=LinearPDE(mydomain) |
228 |
mypde2.setValue(Y=eval(y,elem),y=matmult(eval(x,face_elem),nrml)) |
mypde2.setValue(Y=evaluate(y,elem),y=matrixmult(evaluate(x,face_elem),nrml)) |
229 |
mypde2.setReducedOrderForSolutionsTo(reduce) |
mypde2.setReducedOrderForSolutionsTo(reduce) |
230 |
checkSystem(text+" const with Y",mypde1.getOperator(),U,mypde2.getRightHandSide()) |
checkSystem(text+" const with Y",mypde1.getOperator(),U,mypde2.getRightHandSide()) |
231 |
|
|
240 |
text="C[%d,%d,%d]"%(p,q,i) |
text="C[%d,%d,%d]"%(p,q,i) |
241 |
y=mult3_1(c_C,gradu) |
y=mult3_1(c_C,gradu) |
242 |
mypde1=LinearPDE(mydomain) |
mypde1=LinearPDE(mydomain) |
243 |
mypde1.setValue(C=c_C2,Y=eval(y,elem)) |
mypde1.setValue(C=c_C2,Y=evaluate(y,elem)) |
244 |
mypde1.setReducedOrderForSolutionsTo(reduce) |
mypde1.setReducedOrderForSolutionsTo(reduce) |
245 |
checkSystem(text+" const with Y",mypde1.getOperator(),U,mypde1.getRightHandSide()) |
checkSystem(text+" const with Y",mypde1.getOperator(),U,mypde1.getRightHandSide()) |
246 |
|
|
256 |
text="D[%d,%d]"%(p,q) |
text="D[%d,%d]"%(p,q) |
257 |
y=mult2(c_D,u) |
y=mult2(c_D,u) |
258 |
mypde1=LinearPDE(mydomain) |
mypde1=LinearPDE(mydomain) |
259 |
mypde1.setValue(D=c_D2,Y=eval(y,elem)) |
mypde1.setValue(D=c_D2,Y=evaluate(y,elem)) |
260 |
mypde1.setReducedOrderForSolutionsTo(reduce) |
mypde1.setReducedOrderForSolutionsTo(reduce) |
261 |
checkSystem(text+" const with Y",mypde1.getOperator(),U,mypde1.getRightHandSide()) |
checkSystem(text+" const with Y",mypde1.getOperator(),U,mypde1.getRightHandSide()) |
262 |
|
|