Exemple #1
0
from sympy import Symbol, Function
from derivation_modeling.derivation import derivation

r = Symbol("r")
V = Symbol("V")

# set epsilon and sigma to 1 for now

lj_expr = 4 * (1 / r ** 12 - 1 / r ** 6)

lj_pot = derivation(V(r), lj_expr)
lj_pot.set_name("lennard-jones")
lj_pot.set_title("Lennard-Jones Potential")


if __name__ == "__main__":
    lj_pot.to_xhtml()
Exemple #2
0
from sympy import Symbol, Function
from derivation_modeling.derivation import derivation

r = Symbol('r')
V = Symbol('V')

# set epsilon and sigma to 1 for now

lj_expr = 4 * (1 / r**12 - 1 / r**6)

lj_pot = derivation(V(r), lj_expr)
lj_pot.set_name('lennard-jones')
lj_pot.set_title('Lennard-Jones Potential')

if __name__ == '__main__':
    lj_pot.to_xhtml()
Exemple #3
0
from sum_util import peel_n

i = Symbol('i', integer=True)
n = Symbol('n', integer=True)

I = Symbol('I')
f = Function('f')
h = Symbol('h')
x = IndexedBase('x')

a = Symbol('a')
b = Symbol('b')

definition_of_h = Eq(h, (b - a) / n)

trap = derivation(I, Sum(h / 2 * (f(x[i]) + f(x[i + 1])), (i, 1, n)))
trap.set_name('trapezoidal_int')
trap.set_title('Trapezoidal Rule for Integration')


def split_sum(s):
    v = s.function.expand()
    sums = []
    for t in v.iter_basic_args():
        new_s = Sum(t, s.limits)
        sums.append(new_s)
    return sums[0] + sums[1]


def rewrite(s, rules):
    ''' rewrite an expression.  The rules argument is a list of 2-tuples.

# this should form one page - listing some definitions and setting out the basic form for the
# parition function

from sympy import Symbol, Integral, exp
from derivation_modeling.derivation import derivation, definition, replace_definition

Z = Symbol('Z')
T = Symbol('T')
k = Symbol('k')
V = Symbol('V')
R = Symbol('R')
Beta = Symbol('beta')


partition_function = derivation(Z,Integral(exp(-V/(k*T)),R))
partition_function.set_name('partition')
partition_function.set_title('Partition Function')

beta_def = definition(Beta,1/(k*T),T)

partition_function.add_step( replace_definition(beta_def), 'Insert definition of beta')

i = Symbol('i',integer=True)
n = Symbol('n',integer=True)

I = Symbol('I')
f = Function('f')
h = Symbol('h')
x = IndexedBase('x')

a = Symbol('a')
b = Symbol('b')


definition_of_h = Eq(h,(b-a)/n)

trap = derivation(I,Sum(h/2*(f(x[i])+f(x[i+1])),(i,1,n)))
trap.set_name('trapezoidal_int')
trap.set_title('Trapezoidal Rule for Integration')

def split_sum(s):
    v = s.function.expand()
    sums = []
    for t in v.iter_basic_args():
        new_s = Sum(t,s.limits)
        sums.append(new_s)
    return sums[0] + sums[1]

def rewrite(s,rules):
    ''' rewrite an expression.  The rules argument is a list of 2-tuples.
        In each tuple, the first item is a type and the second is a function to apply'''
    if s.is_Atom: 
# this should form one page - listing some definitions and setting out the basic form for the
# parition function

from sympy import Symbol, Integral, exp
from derivation_modeling.derivation import derivation, definition, replace_definition

Z = Symbol('Z')
T = Symbol('T')
k = Symbol('k')
V = Symbol('V')
R = Symbol('R')
Beta = Symbol('beta')

partition_function = derivation(Z, Integral(exp(-V / (k * T)), R))
partition_function.set_name('partition')
partition_function.set_title('Partition Function')

beta_def = definition(Beta, 1 / (k * T), T)

partition_function.add_step(replace_definition(beta_def),
                            'Insert definition of beta')