KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
Namespaces | Variables
generate_stokes_twofluid_element.py File Reference

Namespaces

 generate_stokes_twofluid_element
 

Variables

bool generate_stokes_twofluid_element.do_simplifications = False
 
int generate_stokes_twofluid_element.dim = 3
 
string generate_stokes_twofluid_element.mode = "c"
 
int generate_stokes_twofluid_element.nnodes = 3
 
int generate_stokes_twofluid_element.strain_size = 3
 
int generate_stokes_twofluid_element.initial_tabs = 0
 
int generate_stokes_twofluid_element.max_index = 30
 
string generate_stokes_twofluid_element.optimizations = 'basic'
 
bool generate_stokes_twofluid_element.replace_indices = False
 
bool generate_stokes_twofluid_element.impose_partion_of_unity = False
 
 generate_stokes_twofluid_element.N
 
 generate_stokes_twofluid_element.DN
 
 generate_stokes_twofluid_element.v = DefineMatrix('v',nnodes,dim)
 
 generate_stokes_twofluid_element.vn = DefineMatrix('vn',nnodes,dim)
 
 generate_stokes_twofluid_element.vnn = DefineMatrix('vnn',nnodes,dim)
 
 generate_stokes_twofluid_element.p = DefineVector('p',nnodes)
 
 generate_stokes_twofluid_element.w = DefineMatrix('w',nnodes,dim)
 
 generate_stokes_twofluid_element.q = DefineVector('q',nnodes)
 
 generate_stokes_twofluid_element.f = DefineMatrix('f',nnodes,dim)
 
 generate_stokes_twofluid_element.C = DefineSymmetricMatrix('C',strain_size,strain_size)
 
 generate_stokes_twofluid_element.dt = sympy.Symbol('dt', positive=True)
 
 generate_stokes_twofluid_element.rho = sympy.Symbol('rho', positive=True)
 
 generate_stokes_twofluid_element.tau1 = sympy.Symbol('tau1', positive=True)
 
 generate_stokes_twofluid_element.tau2 = sympy.Symbol('tau2')
 
 generate_stokes_twofluid_element.bdf0 = sympy.Symbol('bdf0')
 
 generate_stokes_twofluid_element.bdf1 = sympy.Symbol('bdf1')
 
 generate_stokes_twofluid_element.bdf2 = sympy.Symbol('bdf2')
 
 generate_stokes_twofluid_element.fgauss = DefineVector('fgauss',dim)
 
 generate_stokes_twofluid_element.vgauss = DefineVector('vgauss',dim)
 
 generate_stokes_twofluid_element.acch = DefineVector('acch',dim)
 
 generate_stokes_twofluid_element.pgauss = sympy.Symbol('pgauss')
 
 generate_stokes_twofluid_element.wgauss = w.transpose()*N
 
 generate_stokes_twofluid_element.qgauss = q.transpose()*N
 
 generate_stokes_twofluid_element.grad_v = DN.transpose()*v
 
 generate_stokes_twofluid_element.grad_q = DN.transpose()*q
 
 generate_stokes_twofluid_element.grad_p = DefineVector('grad_p',dim)
 
 generate_stokes_twofluid_element.stress = DefineVector('stress',3)
 
 generate_stokes_twofluid_element.B = MatrixB(DN)
 
 generate_stokes_twofluid_element.grad_sym_f = grad_sym_voigtform(DN,f)
 
 generate_stokes_twofluid_element.div_v = div(DN,v)
 
 generate_stokes_twofluid_element.div_w = div(DN,w)
 
 generate_stokes_twofluid_element.grad_sym_w = grad_sym_voigtform(DN,w)
 
 generate_stokes_twofluid_element.a = bdf0*v+bdf1*vn+bdf2*vnn
 
 generate_stokes_twofluid_element.grad_sym_res = grad_sym_voigtform(DN,f-rho*a)
 
 generate_stokes_twofluid_element.rv_galerkin = wgauss.transpose()*(fgauss - rho*acch) + div_w*pgauss - grad_sym_w.transpose()*stress -qgauss*div_v
 
 generate_stokes_twofluid_element.rv_stab = rho*div_w*tau2*div_v + grad_q.transpose()*(rho*tau1*(fgauss - rho*acch - grad_p) )
 
 generate_stokes_twofluid_element.rv = rv_galerkin + rv_stab
 TODO: it might be better to remove this term - it is the symmetric_gradient of the subscale! More...
 
 generate_stokes_twofluid_element.dofs = sympy.zeros(nnodes*(dim+1), 1)
 
 generate_stokes_twofluid_element.testfunc = sympy.zeros(nnodes*(dim+1), 1)
 
 generate_stokes_twofluid_element.rhs = Compute_RHS(rv, testfunc, do_simplifications)
 
 generate_stokes_twofluid_element.strain = grad_sym_voigtform(DN,v)
 HERE WE MUST SUBSTITUTE EXPRESSIONS. More...
 
 generate_stokes_twofluid_element.rhs_to_derive = rhs.copy()
 
tuple generate_stokes_twofluid_element.pgauss_expanded = (p.transpose()*N)[0]
 
 generate_stokes_twofluid_element.lhs = Compute_LHS(rhs_to_derive, testfunc, dofs, do_simplifications)
 obtain LHS by symbolic derivation More...
 
 generate_stokes_twofluid_element.penr = DefineVector('penr',nnodes)
 define enrichment variables More...
 
 generate_stokes_twofluid_element.qenr = DefineVector('qenr',nnodes)
 
 generate_stokes_twofluid_element.Nenr = DefineVector('Nenr',nnodes)
 
 generate_stokes_twofluid_element.DNenr = DefineMatrix('DNenr',nnodes, dim)
 
 generate_stokes_twofluid_element.grad_qenr = DNenr.transpose()*qenr
 
 generate_stokes_twofluid_element.grad_penr = DNenr.transpose()*penr
 
tuple generate_stokes_twofluid_element.penr_gauss = (penr.transpose()*Nenr)[0]
 
tuple generate_stokes_twofluid_element.rv_enriched = div_w*penr_gauss + grad_qenr.transpose()*(rho*tau1*(fgauss - rho*acch - grad_p - grad_penr)) + grad_q.transpose()*(rho*tau1*(- grad_penr))
 
 generate_stokes_twofluid_element.dofs_enr = sympy.Matrix( [[penr[0,0]],[penr[1,0]],[penr[2,0]],[penr[3,0]]] )
 
 generate_stokes_twofluid_element.testfunc_enr = sympy.Matrix( [[qenr[0,0]],[qenr[1,0]],[qenr[2,0]],[qenr[3,0]]] )
 
 generate_stokes_twofluid_element.rhs_eV
 K V x = b + rhs_eV H Kee penr = rhs_ee. More...
 
 generate_stokes_twofluid_element.V
 
 generate_stokes_twofluid_element.rhs_ee
 
 generate_stokes_twofluid_element.H
 
 generate_stokes_twofluid_element.Kee
 
 generate_stokes_twofluid_element.mu_eq = C[2,2]
 simplified way of computing tau More...
 
int generate_stokes_twofluid_element.inv_h2 = 0
 
int generate_stokes_twofluid_element.tau_denom = 3*mu_eq*inv_h2
 
 generate_stokes_twofluid_element.tau_denom_out = OutputSymbolicVariable(tau_denom,mode)
 
 generate_stokes_twofluid_element.templatefile = open("stokes_twofluid_cpp_template_3D.cpp")
 
 generate_stokes_twofluid_element.outstring = templatefile.read()
 
 generate_stokes_twofluid_element.out = open("stokes_3D_twofluid.cpp",'w')