added missing definition of tranformFieldMask for diagTensor - my Mac g++ did not mind. Also add detail to solidMechanics/readMe.txt

This commit is contained in:
Philip Cardiff 2013-10-18 15:40:24 +01:00
parent 87cb5a32fa
commit b3be3f8024
3 changed files with 150 additions and 0 deletions

View file

@ -84,3 +84,7 @@ structural applications, PhD thesis, Imperial College London, 2000.
Cardiff P, Development of the finite volume method for hip joint stress
analysis, PhD thesis, University College Dublin, 2012.
Tang T, Hededal O, Cardif P, Roenby J, A Finite Volume Method solver for
non-linear soil stress analysis using OpenFOAM, 8th OpenFOAM Workshop,
Jeju, 2013.

View file

@ -28,6 +28,7 @@ Description
\*---------------------------------------------------------------------------*/
#include "diagTensorField.H"
#include "transformField.H"
#define TEMPLATE
#include "FieldFunctionsM.C"
@ -56,6 +57,61 @@ BINARY_OPERATOR(vector, vector, diagTensor, /, divide)
BINARY_TYPE_OPERATOR(vector, vector, diagTensor, /, divide)
template<>
tmp<Field<diagTensor> > transformFieldMask<diagTensor>
(
const tensorField& tf
)
{
tmp<Field<diagTensor> > ret(new Field<diagTensor>(tf.size()));
ret().component(diagTensor::XX) = tf.component(tensor::XX);
ret().component(diagTensor::YY) = tf.component(tensor::YY);
ret().component(diagTensor::ZZ) = tf.component(tensor::ZZ);
return ret;
}
template<>
tmp<Field<diagTensor> > transformFieldMask<diagTensor>
(
const tmp<tensorField>& ttf
)
{
tmp<Field<diagTensor> > ret =
transformFieldMask<diagTensor>(ttf());
ttf.clear();
return ret;
}
template<>
tmp<Field<diagTensor> > transformFieldMask<diagTensor>
(
const symmTensorField& stf
)
{
tmp<Field<diagTensor> > ret(new Field<diagTensor>(stf.size()));
ret().component(diagTensor::XX) = stf.component(symmTensor::XX);
ret().component(diagTensor::YY) = stf.component(symmTensor::YY);
ret().component(diagTensor::ZZ) = stf.component(symmTensor::ZZ);
return ret;
}
template<>
tmp<Field<diagTensor> > transformFieldMask<diagTensor>
(
const tmp<symmTensorField>& tstf
)
{
tmp<Field<diagTensor> > ret =
transformFieldMask<diagTensor>(tstf());
tstf.clear();
return ret;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View file

@ -0,0 +1,90 @@
Solid Mechanics
Finite Volume Solvers
The included solid mechanics solvers employ the finite volume method
(not finite elements/elephants) to numerically approximate the
displacements and stresses in solid bodies undergoing deformation.
The included solvers feature the following capabilities:
small strain
small strain with large rotations
large strain
Mises-Levy J2 plasticity
thermal-elasticity
visco-elasticity
gravity body forces
fluid-structure interactions
multi-material analyses
contact stress analysis with friction
small strain orthotropic elasticity
large strain orthotropic elasticity
cohesive zones
predefined crack path
arbitrary crack propagation
custom boundary conditions
Aitken's under-relaation for displacement field
A number of people have contributed to the development of the solvers,
mainly within Alojz Ivankovic's research group. The code has been
assembled and is maintained by Philip Cardiff (University College Dublin),
and significant contributions have been made by Aleksandar Karac, Zeljko
Tukovic, Hrvoje Jasak, Declan Carolan, Michael Leonard, Valentine
Kanyanta, David McAuliffe, Declan McNamara and Tian Tang.
Have fun.
Philip
The folowing references are relevant and citations are welcome:
Cardiff P, Karać A & Ivanković A, A Large Strain Finite Volume Method for
Orthotropic Bodies with General Material Orientations, Computer Methods
in Applied Mechanics & Engineering, 2013,
http://dx.doi.org/10.1016/j.cma.2013.09.008.
Cardiff P, Karać A & Ivanković A, Development of a finite volume contact
solver based on the penalty method. Computational Materials Science, 64
283-284, 2012, http://dx.doi.org/10.1016/j.commatsci.2012.03.011.
Cardiff P, Karać A, Tuković Z & Ivanković A, Development of a finite volume
based structural solver for large rotation of non-orthogonal meshes, 7th
OpenFOAM Workshop, Darmstadt, Germany, 2012.
Tuković Z, Ivanković A & Karać A, Finite volume stress analysis in multi-
material linear elastic body. International Journal for Numerical Methods
in Engineering, 2012. doi:10.1002/nme.
Carolan D, Tuković Z, Murphy N, Ivanković A, Arbitrary crack propagation
in multi-phase materials using the finite volume method, Computational
Materials Science, 2013, http://dx.doi.org/10.1016/j.commatsci.2012.11.049.
Tuković Z & Jasak H, Updated lagrangian finite volume solver for large
deformation dynamic response of elastic body. Transactions of FAMENA,
1(31):116, 2007.
Jasak H & Tuković Z, Dynamic mesh handling in OpenFOAM applied to fluid-
structure interaction simulations, 5th European Conference on Computational
Fluid Dynamics ECCOMAS CFD, Lisbon, Portugal, 2010.
Tuković Z & Jasak H, Finite volume method for fluid-strucutre-interaction
with large structural displacements, 2nd OpenFOAM Workshop, Zagreb, 2007.
Jasak H & Weller H, Finite volume methodology for contact problems of linear
elastic solids, 3rd International Conference of Croatian Society of Mechanics,
pages 253260, Cavtat/Dubrovnik, Crotatia, 2000.
Jasak H & Weller H, Application of the finite volume method and unstructured
meshes to linear elasticity, International Journal for Numerical Methods in
Engineering, pages 267287, 2000.
Maneeratana K, Development of the finite volume method for non-linear
structural applications, PhD thesis, Imperial College London, 2000.
Cardiff P, Development of the finite volume method for hip joint stress
analysis, PhD thesis, University College Dublin, 2012.
Tang T, Hededal O, Cardif P, Roenby J, A Finite Volume Method solver for
non-linear soil stress analysis using OpenFOAM, 8th OpenFOAM Workshop,
Jeju, 2013.