1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation; either version 2 of the License, or (at your
14 option) any later version.
16 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 Foam::sixDoFRigidBodyDisplacementPointPatchVectorField
29 Foam::sixDoFRigidBodyDisplacementPointPatchVectorField
32 sixDoFRigidBodyDisplacementPointPatchVectorField.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef sixDoFRigidBodyDisplacementPointPatchVectorField_H
37 #define sixDoFRigidBodyDisplacementPointPatchVectorField_H
39 #include "fixedValuePointPatchField.H"
40 #include "sixDoFRigidBodyMotion.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 /*---------------------------------------------------------------------------*\
48 Class sixDoFRigidBodyDisplacementPointPatchVectorField Declaration
49 \*---------------------------------------------------------------------------*/
51 class sixDoFRigidBodyDisplacementPointPatchVectorField
53 public fixedValuePointPatchField<vector>
57 //- Six dof motion object
58 sixDoFRigidBodyMotion motion_;
60 //- Reference positions of points on the patch
63 //- Reference density required by the forces object for
64 // incompressible calculations
70 //- Runtime type information
71 TypeName("sixDoFRigidBodyDisplacement");
76 //- Construct from patch and internal field
77 sixDoFRigidBodyDisplacementPointPatchVectorField
80 const DimensionedField<vector, pointMesh>&
83 //- Construct from patch, internal field and dictionary
84 sixDoFRigidBodyDisplacementPointPatchVectorField
87 const DimensionedField<vector, pointMesh>&,
91 //- Construct by mapping given patchField<vector> onto a new patch
92 sixDoFRigidBodyDisplacementPointPatchVectorField
94 const sixDoFRigidBodyDisplacementPointPatchVectorField&,
96 const DimensionedField<vector, pointMesh>&,
97 const pointPatchFieldMapper&
100 //- Construct and return a clone
101 virtual autoPtr<pointPatchField<vector> > clone() const
103 return autoPtr<pointPatchField<vector> >
105 new sixDoFRigidBodyDisplacementPointPatchVectorField
112 //- Construct as copy setting internal field reference
113 sixDoFRigidBodyDisplacementPointPatchVectorField
115 const sixDoFRigidBodyDisplacementPointPatchVectorField&,
116 const DimensionedField<vector, pointMesh>&
119 //- Construct and return a clone setting internal field reference
120 virtual autoPtr<pointPatchField<vector> > clone
122 const DimensionedField<vector, pointMesh>& iF
125 return autoPtr<pointPatchField<vector> >
127 new sixDoFRigidBodyDisplacementPointPatchVectorField
138 // Evaluation functions
140 //- Update the coefficients associated with the patch field
141 virtual void updateCoeffs();
145 virtual void write(Ostream&) const;
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 } // End namespace Foam
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 // ************************************************************************* //