Two cubes of different materials


Title Two cubes of different materials
Tags elasticity tension bending
Runnng time 1 sec
See also 006-cylinder-pure-compression
CAEplex case https://caeplex.com/p/a2c96
Available in HTML PDF ePub

1 Problem description

Two cubes of 10mm \times 10mm \times 10mm each share a common face (fig. 1). One cube is “hard” and has a Young’s modulus E=100~\text{GPa} and \nu=0.25. The other one is “soft” with E=10~\text{GPa} and \nu=0.35. The free end of the hard cube is fully fixed and the free face of the soft cylinder is loaded with a tensile force F_x=-200~\text{N} in the axial direction and a bending force F_z=-10~\text{N} in the transversal direction. The objective of the case is to compare the three different inter-element averaging (or lack of) methods to compute nodal values of secondary fields (i.e. strains and stresses) that Fino provides.

Figure 1: Two cubes of different materials CAD from CAEplex https://caeplex.com/p/a2c96 (rotate and zoom it).

2 Geometry and mesh

The two cubes are created with the OpenCASCADE kernel and then meshed by Gmsh:

SetFactory("OpenCASCADE");

a = 10;
Box(1) = {-a,-a/2,-a/2,a,a,a};
Box(2) = {0,-a/2,-a/2,a,a,a};
Coherence;


Mesh.CharacteristicLengthMax = 10;
Mesh.CharacteristicLengthMin = 4;
Mesh.Algorithm = 1;
Mesh.ElementOrder = 2;

Physical Surface("fixed", 1) = {1};
Physical Surface("load", 2) = {7};

Physical Volume("solid1") = {1};
Physical Volume("solid2") = {2};

The mesh is excessively coarse to better illustrate the point of this case. The elements are still of second order in order to obtain non-uniform derivatives of the displacements within each element.

3 Input file

The annotated input file two-cubes.fin should be self-explanatory. The only important detail is that it reads a command line argument from Fino’s invocation which should be either always, never or material and is passed to the FINO_SOLVER SMOOTH keyword. Sec. 5 shows what the differences between these three modes are.

DEFAULT_ARGUMENT_VALUE 1 always
FINO_SOLVER SMOOTH $1  # put Fino in either "always", "never" or "material" mode

MESH FILE_PATH two-cubes.msh DIMENSIONS 3    # read mesh file

# material properties
MATERIAL solid1   E 100e3   nu 0.25          # the names solid1 and solid2 are the
MATERIAL solid2   E 10e3    nu 0.35          # physical groups in the .geo file

PHYSICAL_GROUP NAME fixed BC fixed          # fix one end face
PHYSICAL_GROUP NAME load  BC Fz=-10 Fx=-200 # load the other face

FINO_STEP  # solve the problem!

# write a vtk file with the mode in the name
MESH_POST FILE_PATH two-cubes-$1.vtk \
  dudx dudy dudz \
  dvdx dvdy dvdz \
  dwdx dwdy dwdz \
  sigmax sigmay sigmaz \
  tauxy tauyz tauzx \
  sigma sigma1 sigma2 sigma3 \
  E VECTOR u v w

4 Execution

The parameters always, never and material are successively passed to the two-cubes.fin input above:

$ gmsh -v 0 -3 two-cubes.geo
$ fino two-cubes.fin always
$ fino two-cubes.fin never
$ fino two-cubes.fin material
$

5 Results

Fig. 2 illustrates the difference in the computed stresses.

a
b
c

Figure 2: Von Mises stresses depending on the averaging scheme chosen in Fino.. a — always-averaged, b — never-averaged, c — material-averaged