File: integrals.cdb

package info (click to toggle)
cadabra2 2.4.3.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 78,796 kB
  • sloc: ansic: 133,450; cpp: 92,064; python: 1,530; javascript: 203; sh: 184; xml: 182; objc: 53; makefile: 51
file content (109 lines) | stat: -rw-r--r-- 3,168 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109

def test01():
    __cdbkernel__=create_scope()
    \partial{#}::PartialDerivative;
    a::Depends(\partial{#});
    ex:= \int{ \partial_{0}{a} \partial_{0}{a} }{x};
    integrate_by_parts(_, $a$)
    tst:= \int{ -a \partial_{0 0}{a} }{x} - @(ex);
    assert(tst==0)
    print("Test 01 passed")

test01()
        
def test02():
    __cdbkernel__=create_scope()
    \partial{#}::PartialDerivative;
    a::Depends(\partial{#});
    ex:= \int{ a \partial_{0}{\partial_{0}{a}} }{x};
    integrate_by_parts(_, $\partial_{0}{a}$)
    tst:= \int{ - \partial_{0}{a} \partial_{0}{a} }{x} - @(ex);
    assert(tst==0)
    print("Test 02 passed")

test02()

def test03():
    __cdbkernel__=create_scope()
    \nabla{#}::Derivative;
    a::Depends(\nabla{#});
    ex:= \int{ a \nabla_{0}{\nabla_{0}{a}} }{x};
    integrate_by_parts(_, $a$)
    tst:= \int{ a \nabla_{0}{\nabla_{0}{a}} }{x} - @(ex);
    assert(tst==0)
    print("Test 03 passed")

test03()

def test04():
    __cdbkernel__=create_scope()
    \partial{#}::PartialDerivative;        
    ex:= \int{ a \partial_{0 0}{b} c }{x};
    integrate_by_parts(_, $b$)
    tst:= \int{ a \partial_{0 0}{b} c }{x} - @(ex);
    assert(tst==0)
    print("Test 04 passed")

test04()

def test05():
    __cdbkernel__=create_scope()
    \partial{#}::PartialDerivative;
    ex:=  \int{  A_{i j} }{x};
    integrate_by_parts(_, $h$)  
    tst:= \int{  A_{i j} }{x} - @(ex);
    assert(tst==0)
    print("Test 05a passed")
    ex:= \int{ h A_{i j} }{x};
    integrate_by_parts(_, $h$)
    tst:= \int{ h A_{i j} }{x} - @(ex);
    assert(tst==0)
    print("Test 05b passed")
    \partial{#}::PartialDerivative;
    ex:=  \int{  A_{i j} + \partial_{i j}{h} }{x};
    integrate_by_parts(_, $h$)
    tst:=  \int{  A_{i j} }{x} - @(ex);
    assert(tst==0)
    print("Test 05c passed")

test05()

def test06():
    __cdbkernel__=create_scope()        
    \partial{#}::Derivative;
    \tau::Coordinate;
    {t,r}::Depends(\partial{#});
    \delta{#}::Accent;
    ex:=\int{ \partial{\delta{t}} \partial{t} r }{\tau};
    integrate_by_parts(ex, $\delta{t}$)
    tst:= - \int{ \delta{t} \partial{ \partial{t} r} }{\tau} - @(ex);
    assert(tst==0)
    print("Test 06 passed")

test06()

def test07():
    __cdbkernel__=create_scope()        
    {A,B,C,D,E,F,F#}::Indices(full);
    {a,b,c,d,e,f,f#}::Indices(space1);
    {m,n,o,p,q,r,r#}::Indices(space2);
    \partial{#}::PartialDerivative.
    \delta{#}::Accent.
    F_{A B C}::AntiSymmetric.
    F_{a b c}::AntiSymmetric.
    F_{m n p}::AntiSymmetric.
    F_{#}::Depends(\partial{#}).
    
    ex:=\int{ c_{0} \partial_{a d}{ \delta{F_{a b c}}} F_{d b c}
          + 2 c_{1} \partial_{a c}{ \delta{F_{m a b}}} F_{m c b} }{x};
    
    integrate_by_parts(ex, $\partial_{n?}{\delta{F_{m? a b}}}$)
    tst:=\int{ -\partial_{a}{c_{0}} \partial_{d}{\delta{F_{a b c}}} F_{d b c}
               - c_{0}  \partial_{d}{\delta{F_{a b c}}} \partial_{a}{ F_{d b c} }
               - 2 \partial_{a}{c_{1}} \partial_{c}{\delta{F_{m a b}}} F_{m c b}
               - 2 c_{1} \partial_{c}{\delta{F_{m a b}}} \partial_{a}{ F_{m c b} } }{x} - @(ex);
    assert(tst==0)
    print("Test 07 passed")

test07()