class proteus.mprans.AddedMass.NumericalFlux(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]
class proteus.mprans.AddedMass.Coefficients(nd=2, V_model=None, barycenters=None, flags_rigidbody=None, solve_rate=0.0, nullSpace='ConstantNullSpace')[source]
Parameters
• nd (int) – Number of space dimensions.

• V_model (int) – Index of Navier-Stokes model.

• barycenters (array_like) – List of domain barycenters.

• flags_rigidbody (array_like) – Array of integers of length at least as long as maximum domain flag, with 0 at indices corresponding to flags for fixed walls, and 1 at indices corresponding to flags for rigid bodies. e.g. if only flag 2 is rigid body, and the max value of flag is 5, the array will look like np.array([0,0,1,0,0,0])

TODO

attachModels(modelList)[source]

Attach the model for velocity and density to PresureIncrement model

initializeMesh(mesh)[source]

Give the TC object access to the mesh for any mesh-dependent information.

initializeElementQuadrature(t, cq)[source]

initializeElementBoundaryQuadrature(t, cebq, cebq_global)[source]

initializeGlobalExteriorElementBoundaryQuadrature(t, cebqe)[source]

initializeGeneralizedInterpolationPointQuadrature(t, cip)[source]

Give the TC object access to the generalized interpolation point storage. These points are used to project nonlinear potentials (phi).

preStep(t, firstStep=False)[source]

Move the current values to values_last to keep cached set of values for bdf1 algorithm

postStep(t, firstStep=False)[source]

Update the fluid velocities

evaluate(t, c)[source]

Evaluate the coefficients at a given time, t, using the coefficient storage passed in as the dictionary c.

class proteus.mprans.AddedMass.LevelModel(uDict, phiDict, testSpaceDict, matType, dofBoundaryConditionsDict, dofBoundaryConditionsSetterDict, coefficients, elementQuadrature, elementBoundaryQuadrature, fluxBoundaryConditionsDict=None, advectiveFluxBoundaryConditionsSetterDict=None, diffusiveFluxBoundaryConditionsSetterDictDict=None, stressTraceBoundaryConditionsSetterDict=None, stabilization=None, shockCapturing=None, conservativeFluxDict=None, numericalFluxType=None, TimeIntegrationClass=None, massLumping=False, reactionLumping=False, options=None, name='defaultName', reuse_trial_and_test_quadrature=True, sd=True, movingDomain=False)[source]

Allocate storage and initialize some variables.

Parameters

Notes

The constructor sets the input arguments, calculates dimensions, and allocates storage. The meanings of variable suffixes are

• global – per physical domain

• element – per element

• elementBoundary – per element boundary

The prefix n means ‘number of’.

Storage is divided into quantities required at different sets of points or geometric entities. Each type of storage has a dictionary for all the quantities of that type. The names and dimensions of the storage dictionaries are

• e – at element

• q – at element quadrature, unique to elements

• ebq – at element boundary quadrature, unique to elements

• ebq_global – at element boundary quadrature, unique to element boundary

• ebqe – at element boundary quadrature, unique to global, exterior element boundary

• phi_ip – at the generalized interpolation points required to build a nonlinear phi

nCalls = 0[source]
calculateCoefficients()[source]
calculateElementResidual()[source]

Calculate all the element residuals

getResidual(u, r)[source]

Calculate the element residuals and add in to the global residual

getJacobian(jacobian)[source]
calculateElementQuadrature()[source]

Calculate the physical location and weights of the quadrature rules and the shape information at the quadrature points.

This function should be called only when the mesh changes.

calculateElementBoundaryQuadrature()[source]

Calculate the physical location and weights of the quadrature rules and the shape information at the quadrature points on element boundaries.

This function should be called only when the mesh changes.

calculateExteriorElementBoundaryQuadrature()[source]

Calculate the physical location and weights of the quadrature rules and the shape information at the quadrature points on global element boundaries.

This function should be called only when the mesh changes.

estimate_mt()[source]
calculateAuxiliaryQuantitiesAfterStep()[source]
calculateSolutionAtQuadrature()[source]
updateAfterMeshMotion()[source]