~njansson/dolfin/hpc

« back to all changes in this revision

Viewing changes to src/demo/scripting/pydolfin/solvers/elasticity-updated/plast/problem.py

  • Committer: Anders Logg
  • Date: 2007-01-10 09:04:44 UTC
  • mfrom: (1689.1.221 trunk)
  • Revision ID: logg@simula.no-20070110090444-ecyux3n1qnei4i8h
RemoveĀ oldĀ head

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from dolfin import *
 
2
from diffpde import *
 
3
 
 
4
class Source(Function):
 
5
    def eval(self, point, i):
 
6
        if(i == 1):
 
7
            if(self.time() < 3.0):
 
8
                return -10.0 * 1.0e1
 
9
            else:
 
10
                return 0.0
 
11
        else:
 
12
            return 0.0
 
13
 
 
14
class Density(Function):
 
15
    def eval(self, point, i):
 
16
        return 3.0e0
 
17
 
 
18
class SimpleBC(BoundaryCondition):
 
19
    def eval(self, value, point, i):
 
20
        if point[0] == 0.0:
 
21
            value.set(0.0)
 
22
 
 
23
class InitialVelocity(Function):
 
24
    def eval(self, point, i):
 
25
        return 0.0
 
26
 
 
27
 
 
28
set("ODE method", "dg");
 
29
set("ODE order", 0);
 
30
set("ODE nonlinear solver", "fixed-point");
 
31
set("ODE linear solver", "direct");
 
32
set("ODE tolerance", 1.0e3);
 
33
set("ODE discrete tolerance", 1.0e+3);
 
34
 
 
35
set("ODE fixed time step", True);
 
36
set("ODE initial time step", 1.0e-2);
 
37
set("ODE maximum time step", 1.0e-2);
 
38
 
 
39
set("ODE save solution", False);
 
40
set("ODE solution file name", "primal.py");
 
41
set("ODE number of samples", 100);
 
42
 
 
43
 
 
44
nu  = 0.3 # Poisson's ratio
 
45
E   = 500.0 * 0.7 * 1.0 # Young's modulus
 
46
nuv = 1.0e1 # Viscosity
 
47
 
 
48
yld = 10.0 # Yield strength
 
49
nuplast = 5.0e-2 # Plastic viscosity
 
50
 
 
51
import geometry
 
52
 
 
53
T = 3.0
 
54
 
 
55
#load_parameters("parameters.xml")
 
56
 
 
57
coeffs = import_header("Coefficients.h")
 
58
#import coefficients as coeffs
 
59
 
 
60
# Coefficients
 
61
 
 
62
f = coeffs.MySource()
 
63
bc = coeffs.MyBC()
 
64
rho = Density()
 
65
v0 = InitialVelocity()
 
66
 
 
67
pde = DiffPDE(geometry.mesh, f, E, nu, nuv, nuplast, yld, bc, T, v0, rho)
 
68
pde.solve(pde.U)
 
69
 
 
70
print "fcount: ", pde.fcount