alpha=1.e-6 xc=[0.3,0.3,1.] beta=8. T_ref=0. T_0=1. #... generate domain ... mydomain = Brick(l0=1.,l1=1., l2=1.,n0=10, n1=10, n2=10) x=mydomain.getX() #... set temperature ... T=T_0*exp(-beta*length(x-xc)) #... open symmetric PDE ... mypde=LinearPDE(mydomain) mypde.setSymmetryOn() #... set coefficients ... C=Tensor4(0.,Function(mydomain)) for i in range(mydomain.getDim()): for j in range(mydomain.getDim()): C[i,i,j,j]+=lam C[i,j,i,j]+=mu C[i,j,j,i]+=mu msk=whereZero(x[0])*[1.,0.,0.] \ +whereZero(x[1])*[0.,1.,0.] \ +whereZero(x[2])*[0.,0.,1.] sigma0=(lam+2./3.*mu)*alpha*(T-T_ref)*kronecker(mydomain) mypde.setValue(A=C,X=sigma0,q=msk) mypde.getSolverOptions().setVerbosityOn() #... solve pde ... u=mypde.getSolution() #... calculate von-Misses g=grad(u) sigma=mu*(g+transpose(g))+lam*trace(g)*kronecker(mydomain)-sigma0