diff --git a/src/rigidBodyDynamics/bodies/cuboid/cuboid.C b/src/rigidBodyDynamics/bodies/cuboid/cuboid.C
new file mode 100644
index 0000000000..5309ae50b4
--- /dev/null
+++ b/src/rigidBodyDynamics/bodies/cuboid/cuboid.C
@@ -0,0 +1,76 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "cuboid.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace RBD
+{
+ defineTypeNameAndDebug(cuboid, 0);
+
+ addToRunTimeSelectionTable
+ (
+ rigidBody,
+ cuboid,
+ dictionary
+ );
+}
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::autoPtr Foam::RBD::cuboid::clone() const
+{
+ return autoPtr(new cuboid(*this));
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::RBD::cuboid::~cuboid()
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
+
+void Foam::RBD::cuboid::write(Ostream& os) const
+{
+ os.writeKeyword("type")
+ << type() << token::END_STATEMENT << nl;
+
+ os.writeKeyword("mass")
+ << m() << token::END_STATEMENT << nl;
+
+ os.writeKeyword("L")
+ << L() << token::END_STATEMENT << nl;
+}
+
+
+// ************************************************************************* //
diff --git a/src/rigidBodyDynamics/bodies/cuboid/cuboid.H b/src/rigidBodyDynamics/bodies/cuboid/cuboid.H
new file mode 100644
index 0000000000..7432f7cbc0
--- /dev/null
+++ b/src/rigidBodyDynamics/bodies/cuboid/cuboid.H
@@ -0,0 +1,124 @@
+/*---------------------------------------------------------------------------*\3
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::cuboid
+
+Description
+ Specialization of rigidBody to construct a cuboid given the mass and
+ lengths of the sides.
+
+SourceFiles
+ cuboidI.H
+ cuboid.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef RBD_cuboid_H
+#define RBD_cuboid_H
+
+#include "rigidBody.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace RBD
+{
+
+/*---------------------------------------------------------------------------*\
+ Class cuboid Declaration
+\*---------------------------------------------------------------------------*/
+
+class cuboid
+:
+ public rigidBody
+{
+ // Private member data
+
+ //- Lengths of the sides
+ vector L_;
+
+
+ // Private member functions
+
+ // Calculate and return the inertia tensor
+ inline symmTensor I(const scalar m, const vector& L) const;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("cuboid");
+
+
+ // Constructors
+
+ //- Construct from name, mass, centre of mass and lengths of the sides.
+ inline cuboid
+ (
+ const word& name,
+ const scalar m,
+ const vector& c,
+ const vector& L
+ );
+
+ //- Construct from dictionary
+ inline cuboid
+ (
+ const word& name,
+ const dictionary& dict
+ );
+
+ //- Return clone of this cuboid
+ virtual autoPtr clone() const;
+
+
+ //- Destructor
+ virtual ~cuboid();
+
+
+ // Member Functions
+
+ //- Return the lengths of the sides of the cuboid
+ inline const vector& L() const;
+
+ //- Write
+ virtual void write(Ostream&) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace RBD
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "cuboidI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/rigidBodyDynamics/bodies/cuboid/cuboidI.H b/src/rigidBodyDynamics/bodies/cuboid/cuboidI.H
new file mode 100644
index 0000000000..e18a835bc0
--- /dev/null
+++ b/src/rigidBodyDynamics/bodies/cuboid/cuboidI.H
@@ -0,0 +1,86 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
+
+inline Foam::symmTensor Foam::RBD::cuboid::I
+(
+ const scalar m,
+ const vector& L
+) const
+{
+ const scalar mBy12 = m/12.0;
+ const scalar mSqrLx = mBy12*sqr(L.x());
+ const scalar mSqrLy = mBy12*sqr(L.y());
+ const scalar mSqrLz = mBy12*sqr(L.z());
+
+ return symmTensor
+ (
+ mSqrLy + mSqrLz, 0, 0,
+ mSqrLx + mSqrLz, 0,
+ mSqrLx + mSqrLy
+ );
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+inline Foam::RBD::cuboid::cuboid
+(
+ const word& name,
+ const scalar m,
+ const vector& c,
+ const vector& L
+)
+:
+ rigidBody(name, m, c, I(m, L)),
+ L_(L)
+{}
+
+
+inline Foam::RBD::cuboid::cuboid
+(
+ const word& name,
+ const dictionary& dict
+)
+:
+ rigidBody(name, rigidBodyInertia()),
+ L_(dict.lookup("L"))
+{
+ const scalar m(readScalar(dict.lookup("mass")));
+ const vector c(dict.lookup("centreOfMass"));
+ rigidBodyInertia::operator=(rigidBodyInertia(m, c, I(m, L_)));
+}
+
+
+// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
+
+inline const Foam::vector& Foam::RBD::cuboid::L() const
+{
+ return L_;
+}
+
+
+// ************************************************************************* //