Correct unit in linear volume force term
Hi,
My mesh is defined in mm. With units = ['mm', 's', 'kg', 'C'] the matching units for density and force are Tg/m**3 and mNewton, respectively.
I would like to determine the linear elastic displacement of the meshed object by gravity, using the linear volume force term t2 = Term.new('dw_volume_lvf(f.val, v)', integral, omega, f=f, v=v) in which the force vector f.val is obtained from function get_gravity.
def get_gravity(ts, coors, mode=None, equations=None, term=None, problem=None, **kwargs): if mode == 'qp': # define material parameters in quadrature points fx = nm.zeros((coors.shape[0], 1, 1)) fy = nm.zeros((coors.shape[0], 1, 1)) fz = nm.tile(-2.285e-2, (coors.shape[0], 1, 1)) # constant vertical force in mN/mm3 val = nm.concatenate((fx, fy, fz), axis=1) # concatenate force components return {'val': val}
With gravity g = 9.81 m/s**2 and density rho = 2.329e-6 Tg/m**3, the constant volume force 2.285e-2 mNewton/mm**3 is obtained as the product of gravity and density.
Is it correct that f.val in the linear volume force term is defined in force per unit volume?
And another newbie question:
Is it correct that a first order integral is used for the linear volume force term, because of the linear relation between force and volume? Or is a higher integral order needed, due to the dimensions of the mesh?
Kind regards, Radko
On 12/29/2016 01:37 PM, Radko Bankras wrote:
Hi,
My mesh is defined in mm. With units = ['mm', 's', 'kg', 'C'] the matching units for density and force are Tg/m**3 and mNewton, respectively.
I would like to determine the linear elastic displacement of the meshed object by gravity, using the linear volume force term t2 = Term.new('dw_volume_lvf(f.val, v)', integral, omega, f=f, v=v) in which the force vector f.val is obtained from function get_gravity.
def get_gravity(ts, coors, mode=None, equations=None, term=None, problem=None, **kwargs): if mode == 'qp': # define material parameters in quadrature points fx = nm.zeros((coors.shape[0], 1, 1)) fy = nm.zeros((coors.shape[0], 1, 1)) fz = nm.tile(-2.285e-2, (coors.shape[0], 1, 1)) # constant vertical force in mN/mm3 val = nm.concatenate((fx, fy, fz), axis=1) # concatenate force components return {'val': val}
With gravity g = 9.81 m/s**2 and density rho = 2.329e-6 Tg/m**3, the constant volume force 2.285e-2 mNewton/mm**3 is obtained as the product of gravity and density.
Is it correct that f.val in the linear volume force term is defined in force per unit volume?
Yes.
And another newbie question:
Is it correct that a first order integral is used for the linear volume force term, because of the linear relation between force and volume? Or is a higher integral order needed, due to the dimensions of the mesh?
In this particular case (integrating a constant) it is definitely correct. In general, the quadrature order needs to reflect both the approximation order of the FE fields and the variability of the material parameters with respect to position. For example, for int(u,v), where u, v have the approximation order equal to 2, the quadrature order 4 would be sufficient. You do not need to worry about the dimension of the mesh, as it is taken into account automatically.
r.
Kind regards, Radko
participants (2)
-
Radko Bankras
-
Robert Cimrman