SyFi 0.3
|
Classes | |
class | ReferenceSimplex |
class | Lagrange |
Functions | |
def | bernstein_space |
def | create_point_set |
def | create_matrix |
Variables | |
tuple | x = Symbol('x') |
tuple | y = Symbol('y') |
tuple | z = Symbol('z') |
tuple | t = ReferenceSimplex(2) |
f = x+y | |
tuple | fe = Lagrange(2,2) |
int | u = 0 |
list | us = [] |
tuple | ui = Symbol("u_%d" % i) |
tuple | J = zeronm(fe.nbf(), fe.nbf()) |
list | Fi = u*fe.N[i] |
list | uj = us[j] |
tuple | integrands = diff(Fi, uj) |
def fem_sympy_core::bernstein_space | ( | order, | |
nsd | |||
) |
Definition at line 39 of file fem_sympy_core.py.
00039 : 00040 if nsd > 3: 00041 raise RuntimeError("Bernstein only implemented in 1D, 2D, and 3D") 00042 sum = 0 00043 basis = [] 00044 coeff = [] 00045 00046 if nsd == 1: 00047 b1, b2 = x, 1-x 00048 for o1 in range(0,order+1): 00049 for o2 in range(0,order+1): 00050 if o1 + o2 == order: 00051 aij = Symbol("a_%d_%d" % (o1,o2)) 00052 sum += aij*binomial(order,o1)*pow(b1, o1)*pow(b2, o2) 00053 basis.append(binomial(order,o1)*pow(b1, o1)*pow(b2, o2)) 00054 coeff.append(aij) 00055 00056 00057 if nsd == 2: 00058 b1, b2, b3 = x, y, 1-x-y 00059 for o1 in range(0,order+1): 00060 for o2 in range(0,order+1): 00061 for o3 in range(0,order+1): 00062 if o1 + o2 + o3 == order: 00063 aij = Symbol("a_%d_%d_%d" % (o1,o2,o3)) 00064 fac = factorial(order)/(factorial(o1)*factorial(o2)*factorial(o3)) 00065 sum += aij*fac*pow(b1, o1)*pow(b2, o2)*pow(b3, o3) 00066 basis.append(fac*pow(b1, o1)*pow(b2, o2)*pow(b3, o3)) 00067 coeff.append(aij) 00068 00069 if nsd == 3: 00070 b1, b2, b3, b4 = x, y, z, 1-x-y-z 00071 for o1 in range(0,order+1): 00072 for o2 in range(0,order+1): 00073 for o3 in range(0,order+1): 00074 for o4 in range(0,order+1): 00075 if o1 + o2 + o3 + o4 == order: 00076 aij = Symbol("a_%d_%d_%d_%d" % (o1,o2,o3,o4)) 00077 fac = factorial(order)/(factorial(o1)*factorial(o2)*factorial(o3)*factorial(o4)) 00078 sum += aij*fac*pow(b1, o1)*pow(b2, o2)*pow(b3, o3)*pow(b4, o4) 00079 basis.append(fac*pow(b1, o1)*pow(b2, o2)*pow(b3, o3)*pow(b4, o4)) 00080 coeff.append(aij) 00081 00082 00083 return sum, coeff, basis 00084
def fem_sympy_core::create_matrix | ( | equations, | |
coeffs | |||
) |
Definition at line 117 of file fem_sympy_core.py.
00117 : 00118 A = Matrix(len(equations), len(equations)) 00119 i = 0; j = 0 00120 for j in range(0, len(coeffs)): 00121 c = coeffs[j] 00122 for i in range(0, len(equations)): 00123 e = equations[i] 00124 d = diff(e, c) 00125 A[i,j] = d 00126 return A 00127 00128 00129
def fem_sympy_core::create_point_set | ( | order, | |
nsd | |||
) |
Definition at line 85 of file fem_sympy_core.py.
00085 : 00086 h = Rational(1,order) 00087 set = [] 00088 00089 if nsd == 1: 00090 for i in range(0, order+1): 00091 x = i*h 00092 if x <= 1: 00093 set.append((x,y)) 00094 00095 if nsd == 2: 00096 for i in range(0, order+1): 00097 x = i*h 00098 for j in range(0, order+1): 00099 y = j*h 00100 if x + y <= 1: 00101 set.append((x,y)) 00102 00103 if nsd == 3: 00104 for i in range(0, order+1): 00105 x = i*h 00106 for j in range(0, order+1): 00107 y = j*h 00108 for k in range(0, order+1): 00109 z = j*h 00110 if x + y + z <= 1: 00111 set.append((x,y,z)) 00112 00113 return set 00114 00115 00116
Definition at line 177 of file fem_sympy_core.py.
tuple fem_sympy_core::fe = Lagrange(2,2) |
Definition at line 188 of file fem_sympy_core.py.
list fem_sympy_core::Fi = u*fe.N[i] |
Definition at line 206 of file fem_sympy_core.py.
tuple fem_sympy_core::integrands = diff(Fi, uj) |
Definition at line 209 of file fem_sympy_core.py.
tuple fem_sympy_core::J = zeronm(fe.nbf(), fe.nbf()) |
Definition at line 204 of file fem_sympy_core.py.
tuple fem_sympy_core::t = ReferenceSimplex(2) |
Definition at line 176 of file fem_sympy_core.py.
int fem_sympy_core::u = 0 |
Definition at line 195 of file fem_sympy_core.py.
tuple fem_sympy_core::ui = Symbol("u_%d" % i) |
Definition at line 199 of file fem_sympy_core.py.
list fem_sympy_core::uj = us[j] |
Definition at line 208 of file fem_sympy_core.py.
list fem_sympy_core::us = [] |
Definition at line 197 of file fem_sympy_core.py.
tuple fem_sympy_core::x = Symbol('x') |
Definition at line 8 of file fem_sympy_core.py.
Referenced by _p_SyFi__ArnoldFalkWintherWeakSymPTo_p_SyFi__StandardFE(), _p_SyFi__ArnoldFalkWintherWeakSymSigmaTo_p_SyFi__StandardFE(), _p_SyFi__ArnoldFalkWintherWeakSymUTo_p_SyFi__StandardFE(), _p_SyFi__BoxTo_p_SyFi__Polygon(), _p_SyFi__BubbleTo_p_SyFi__StandardFE(), _p_SyFi__CrouzeixRaviartTo_p_SyFi__StandardFE(), _p_SyFi__DiscontinuousLagrangeTo_p_SyFi__FE(), _p_SyFi__DiscontinuousLagrangeTo_p_SyFi__Lagrange(), _p_SyFi__HermiteTo_p_SyFi__StandardFE(), _p_SyFi__LagrangeTo_p_SyFi__StandardFE(), _p_SyFi__LineTo_p_SyFi__Polygon(), _p_SyFi__MixedFETo_p_SyFi__FE(), _p_SyFi__Nedelec2HdivTo_p_SyFi__StandardFE(), _p_SyFi__NedelecTo_p_SyFi__StandardFE(), _p_SyFi__P0To_p_SyFi__StandardFE(), _p_SyFi__RaviartThomasTo_p_SyFi__StandardFE(), _p_SyFi__RectangleTo_p_SyFi__Polygon(), _p_SyFi__ReferenceBoxTo_p_SyFi__Box(), _p_SyFi__ReferenceLineTo_p_SyFi__Line(), _p_SyFi__ReferenceRectangleTo_p_SyFi__Rectangle(), _p_SyFi__ReferenceTetrahedronTo_p_SyFi__Tetrahedron(), _p_SyFi__ReferenceTriangleTo_p_SyFi__Triangle(), _p_SyFi__RobustTo_p_SyFi__StandardFE(), _p_SyFi__SimplexTo_p_SyFi__Polygon(), _p_SyFi__SpaceTimeDomainTo_p_SyFi__Polygon(), _p_SyFi__SpaceTimeElementTo_p_SyFi__StandardFE(), _p_SyFi__StandardFETo_p_SyFi__FE(), _p_SyFi__TensorLagrangeTo_p_SyFi__StandardFE(), _p_SyFi__TensorP0To_p_SyFi__StandardFE(), _p_SyFi__TetrahedronTo_p_SyFi__Polygon(), _p_SyFi__TriangleTo_p_SyFi__Polygon(), _p_SyFi__VectorCrouzeixRaviartTo_p_SyFi__StandardFE(), _p_SyFi__VectorDiscontinuousLagrangeTo_p_SyFi__FE(), _p_SyFi__VectorDiscontinuousLagrangeTo_p_SyFi__VectorLagrange(), _p_SyFi__VectorLagrangeTo_p_SyFi__StandardFE(), _p_SyFi__VectorP0To_p_SyFi__StandardFE(), SyFi::barycenter_line(), SyFi::barycenter_tetrahedron(), SyFi::barycenter_triangle(), code_gen2D(), SyFi::coeff(), SyFi::coeffs(), SyFi::SpaceTimeElement::compute_basis_functions(), SyFi::Robust::compute_basis_functions(), SyFi::RaviartThomas::compute_basis_functions(), SyFi::Nedelec2Hdiv::compute_basis_functions(), SyFi::Nedelec::compute_basis_functions(), SyFi::Lagrange::compute_basis_functions(), SyFi::Hermite::compute_basis_functions(), SyFi::CrouzeixRaviart::compute_basis_functions(), SyFi::Bubble::compute_basis_functions(), SyFi::BrezziDouglasMarini::compute_basis_functions(), SyFi::Robust::compute_basis_functions_old(), SyFi::div(), SyFi::ex2equations(), SyFi::grad(), SyFi::homogenous_pol(), SyFi::initSyFi(), SyFi::SpaceTimeDomain::integrate(), SyFi::legendre(), SyFi::legendre1D(), main(), SyFi::matvec(), pickExpression(), SyFi::pol(), SyFi::pol2basisandcoeff(), SyFi::polb(), Ptv::Ptv(), SyFi::Simplex::repr(), SyFi::Box::repr(), SyFi::Tetrahedron::repr(), SyFi::Rectangle::repr(), SyFi::Triangle::repr(), std_list_Sl_GiNaC_ex_Sg__pop(), std_list_Sl_std_pair_Sl_GiNaC_symbol_Sc_GiNaC_ex_Sg__Sg__pop(), std_map_Sl_GiNaC_ex_Sc_GiNaC_ex_Sc_GiNaC_ex_is_less_Sg____setitem__(), std_map_Sl_GiNaC_ex_Sc_int_Sc_GiNaC_ex_is_less_Sg____setitem__(), std_vector_Sl_GiNaC_ex_Sg__pop(), SWIG_CanCastAsInteger(), Swig_var_x_get(), Swig_var_x_set(), and variants().
tuple fem_sympy_core::y = Symbol('y') |
Definition at line 9 of file fem_sympy_core.py.
Referenced by code_gen2D(), SyFi::coeff(), SyFi::coeffs(), SyFi::Robust::compute_basis_functions(), SyFi::RaviartThomas::compute_basis_functions(), SyFi::Nedelec2Hdiv::compute_basis_functions(), SyFi::Nedelec::compute_basis_functions(), SyFi::Lagrange::compute_basis_functions(), SyFi::Hermite::compute_basis_functions(), SyFi::CrouzeixRaviart::compute_basis_functions(), SyFi::BrezziDouglasMarini::compute_basis_functions(), SyFi::Robust::compute_basis_functions_old(), SyFi::div(), SyFi::ex2equations(), SyFi::grad(), SyFi::homogenous_pol(), SyFi::initSyFi(), SyFi::legendre(), main(), pickExpression(), SyFi::pol(), SyFi::pol2basisandcoeff(), SyFi::polb(), Ptv::Ptv(), Swig_var_y_get(), Swig_var_y_set(), and variants().
tuple fem_sympy_core::z = Symbol('z') |
Definition at line 10 of file fem_sympy_core.py.
Referenced by SyFi::coeff(), SyFi::coeffs(), SyFi::RaviartThomas::compute_basis_functions(), SyFi::Nedelec2Hdiv::compute_basis_functions(), SyFi::Nedelec::compute_basis_functions(), SyFi::Lagrange::compute_basis_functions(), SyFi::Hermite::compute_basis_functions(), SyFi::CrouzeixRaviart::compute_basis_functions(), SyFi::div(), SyFi::ex2equations(), SyFi::grad(), SyFi::homogenous_pol(), SyFi::initSyFi(), SyFi::legendre(), main(), pickExpression(), SyFi::pol(), SyFi::pol2basisandcoeff(), SyFi::polb(), Ptv::Ptv(), Swig_var_z_get(), Swig_var_z_set(), and variants().