Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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