Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:volumes:fluid_iso_hypo_materials

This is an old revision of the document!


"Fluid" materials

FluidHypoMaterial

Description

Material law describing a non viscous fluid.

Stresses are computed with

$$ \sigma_{ij} = s_{ij} + p\delta_{ij} $$

with $ s_{ij} = 0 $ in a non viscous fluid.

The equation which associates pressure and volume is

$$ dp = K \frac{dV}{V} $$

where $K$ is the bulk modulus.

Convergence when using this law may be difficult to achieve since there is no stiffness when shearing the material. If you encounter this kind of isssues, you may used NortonHoffHypoMaterial discussed below with a low viscosity parameter.

Parameters

Name Metafor Code Dependency
Density MASS_DENSITY
Bulk Modulus BULK_MODULUS

NortonHoffHypoMaterial

Description

Norton-Hoff law descriding a viscous fluid.

Stresses are computed with $$ \sigma_{ij} = s_{ij} + p \delta_{ij} $$

where $p$ is the hydrostatic pressure and $ s_{ij} $ the stress deviator tensor.

The stress deviator tensor ($ s_{ij} $) is determined upon the strain rate deviator tensor ($ D_{ij} $) through the following equation

$$ s_{ij} = 2 \mu D_{ij} \left( \sqrt{3} \ \sqrt{\frac{2}{3} D_{wz}.D_{wz}} \right)^{m-1}$$

For a newtonian fluid : $ m=1 \rightarrow s_{ij} = 2 \mu D_{ij} $

Hydrostatic pressure is computed upon volume variation through the following eqation

$$ dp = K \frac{dV}{V} $$

where $K$ is the bulk modulus and $V$ the volume.

Parameters

Name Metafor Code Dependency
Viscosity parameter NORTON_MU TM
Bulk modulus BULK_MODULUS TM
Parameter m NORTON_M TM
Density MASS_DENSITY TM

Advice for modelling low viscosity fluid

To model low viscosity fluid (0.3 Pa.s for instance) it is important to used SRI elements instead of SRIPR. Indeed, SRIPR elements might induce oscillations in pressure and velocity fields. This seems to come from the different pressure value that can be stored at the deviatoric gauss points of SRIPR elements. For SRI elements, the hydrostatic pressure value is computed and stored at centre of each element. In that case, the pressure value on each element is unique.
Boundary conditions might also have a huge impact on the convergence and the validity of the results. It is therefore crucial to check the way the elements deform along the boundaries and the corners.
A good compromise must be reached between the elements size and the time step value. If elements are too small, low viscous fluid elements may reach configurations where Negative Jacobian take place during Newton-Raphson procedure. The more elements you have for low viscous fluid, the more difficult is the convergence and therefore the time step is decreased automatically by Metafor. It is therefore better to avoid refining mesh elements too much where it is not needed.
The more stable the time step is, the better for the low viscous fluid behaviour.

NortonHoffPHypoMaterial

Description

This law is identical to NortonHoffHypoMaterial but it can account for the variation of the bulk modulus and the viscosity parameter with the hydrostatic pressure $p$.

The bulk modulus variation must be linear which is consistent with measurements made on oil used in cold rolling.
Both bulk modulus and the viscosity parameter are constant during a time step and are updated at the end of each time step. It is therefore important to assess the influence of the time step size: a time step too large might have an effect on the solution.

Parameters

Name Metafor Code Dependency
Viscosity parameter NORTON_MU TM/IF_P
Bulk modulus BULK_MODULUS TM/IF_P
Parameter m NORTON_M TM
Density MASS_DENSITY TM

Accounting for bulk modulus variation with pressure

As mentionned above, the bulk modulus dependance with pressure must be linear.

$$ K(p) = K_0 + \frac{dK}{dp} p $$

Therefore two parameters must be provided by the user: the bulk modulus at atmospheric pressure and the derivative $\frac{dK}{dp}$

The function $K(p)$ is provided by the user through a PythonDirectorOneParameterFunction:

class MyBulkFunction(PythonDirectorOneParameterFunction):
    def __init__(self,_p):
        PythonDirectorOneParameterFunction.__init__(self)
        self.debugRefs()
        self.p      = _p

    def __del__(self):
        print "MyBulkFunction : __del__ begin\n"
        print "callToDestructor of MyBulkFunction not allowed."
        print "Add MyBulkFunction.__disown__()"
        exit(1)

    def evaluate(self, pres):
        if pres>=0.0: # pression positive en traction !
            return self.p['k0']
        else :       # pression négative en compression !
            return self.p['k0']+self.p['dkdp']*pres

    def computeDerivation(self, pres):
        if pres>=0.0:
            return 0.0
        else :
            return self.p['dkdp']

This class has to be defined above or below getMetafor().

The instance of MyBulkFunction is passed to the Norton Hoff material law thorugh the commands below

    bulkLaw  = MyBulkFunction(p) # <- p stands for parameters dictionnary and not pressure

    materset = domain.getMaterialSet()
    materset.define(1,NortonHoffPHypoMaterial)
    materset(1).put(BULK_MODULUS     ,  1.0)
    materset(1).depend(BULK_MODULUS  ,  bulkLaw,     Field(IF_P))
    materset(1).put(NORTON_MU     ,  p['mu0'] )
    materset(1).put(NORTON_M      ,  1.0      )
    materset(1).put(MASS_DENSITY  ,  p['rho'] )    

TmNortonHoffHypoMaterial

Description

Norton-Hoff law including thermal aspects.

Parameters

Name Metafor Code Dependency
Density MASS_DENSITY
Bulk modulus BULK_MODULUS
Parameter m NORTON_M
Viscosity parameter NORTON_MU
Thermal expansion THERM_EXPANSION TO/TM
Conductivity CONDUCTIVITY TO/TM
Heat capacity HEAT_CAPACITY TO/TM
Dissipated thermoelastic power fraction DISSIP_TE -
Dissipated (visco)plastic power fraction (Taylor-Quinney factor) DISSIP_TQ -
doc/user/elements/volumes/fluid_iso_hypo_materials.1459518480.txt.gz · Last modified: 2016/04/01 15:48 by carretta

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki