Difference between revisions of "Main UserGuideAddendum"

From OpenFOAMWiki
m (Reverted edit of Fqhxde, changed back to last version by Bgschaid)
(Constraints)
 
(21 intermediate revisions by 5 users not shown)
Line 16: Line 16:
 
* [[uguide_table_of_fields|A table of the most the fields written]]
 
* [[uguide_table_of_fields|A table of the most the fields written]]
  
== Chapter 5: The FoamX case manager ==
+
=== Chapter 4.4: Numerical schemes ===
 +
Contrary to what is stated in table 4.11 (Discretisation schemes available in ddtSchemes) CRNK is not bounded, see also P-42
  
== Chapter 6: Mesh generation and conversion ==
+
=== Chapter 4.5: Solution and algorithm control ===
 +
From http://www.cfd-online.com/Forums/openfoam/69257-nnonorthogonalcorrectors.html
  
=== Section 6.3: Mesh generation with the [[blockMesh]] utility ===
+
There's usually nothing to worry about until the max non-orthogonality angle is approx 70 deg.
  
==== 6.3.1.3: The <tt>blocks</tt> ====
+
Non-orthogonal correctors are here to save you if your code is blowing up because the mesh is so non-orthogonal that the first solution is driving the velocity to be stupid. If your velocity is OK, you just keep doing "normal" correctors, without special need for non-orthogonal ones.
  
{{Version1.3}}: Starting with OpenFOAM 1.3 blocks can be now assigned to cellZones (The syntax is similar to the now obsolete [[Contrib_blockMeshWithSets|blockMeshWithSets]]-utility).
+
I use them on bad meshes, when the solver is giving me trouble. Usually, 1 is enough, and I never used more than 3.
  
=== Section 6.4: Mesh conversion ===
+
== Chapter 5: Mesh generation and conversion ==
  
==== 6.4.2: <tt>starToFoam</tt> ====
+
'''Section 5.2.2 Base types'''
 +
The cyclic boundary condition can be specified to be rotational or translational explicitly by editing the boundary file. By adding the following lines (instead of the standard featureCos 0.9;) for translational:
  
In section 6.4.2.6 there is a reference to the <tt>foamCorrectVrt</tt>-utility which can not be found in any of the 1.0.2, 1.1 and 1.2 distributions. Looking at the source I would say that this problem is already fixed by the current versions of <tt>starToFoam</tt> (but I can't test this theory because I have no StarCD).
+
        transform        translational;
 +
        separationVector (Tx Ty Tz);
  
== Chapter 7: Post-processing ==
+
Where the separationVector is the vector between the two parts of the patch. If rotational patch is preferred, it can be specified by:
  
== Chapter 8: Models and physical properties ==
+
        transform      rotational;
 +
        rotationAxis    (rAx rAy rAz);
 +
        rotationCentre  (rCx rCy rCz);
  
== Appendix A: Reference information ==
+
Where the rotational axis and the rotational centre can be specified by the two vectors above. To see how the cyclic patch is coupled, use the debug flag in OpenFOAM-1.x/etc/controlDict. This gives you obj files of the patches and lines connecting each face. These can be visualized in paraview by conversion using objToVTK.
 +
 
 +
=== Section 5.3: Mesh generation with the [[blockMesh]] utility ===
 +
 
 +
==== 5.3.1.3: The <tt>blocks</tt> ====
 +
 
 +
{{versionInfo}}{{Version1.3}}: Starting with OpenFOAM 1.3 blocks can be now assigned to cellZones (The syntax is similar to the now obsolete [[Contrib_blockMeshWithSets|blockMeshWithSets]]-utility).
 +
 
 +
=== Section 5.4: Mesh conversion ===
 +
 
 +
==== 5.4.2: <tt>starToFoam</tt> ====
 +
 
 +
In section 5.4.2.6 there is a reference to the <tt>foamCorrectVrt</tt>-utility which can not be found in any of the 1.0.2, 1.1 and 1.2 distributions. Looking at the source I would say that this problem is already fixed by the current versions of <tt>starToFoam</tt> (but I can't test this theory because I have no StarCD).
 +
 
 +
== Chapter 6: Post-processing ==
 +
 
 +
=== Dynamic Mesh ===
 +
 
 +
==== Six Degree Rigid Body Motion ====
 +
Values for type: sixDoFRigidBodyDisplacement
 +
 
 +
{| border="1" cellpadding="2"
 +
| File: pointDisplacement
 +
|-
 +
! Field name !! Description !! Dimension
 +
|-
 +
! mass
 +
| mass of the rigid body (scalar)
 +
|| <math>{kg}</math>
 +
|-
 +
! momentOfInertia
 +
| Moment of intertia of the rigid body mass (diagTensor)
 +
|| <math>{kg*m^2}</math>
 +
|-
 +
! initialCentreOfMass
 +
| Initial center of the rigid body mass (point)
 +
|| <math>{m}</math>
 +
|-
 +
! initialOrientation
 +
| Initial orientation cosine matrix (tensor)
 +
|| <math>{m}</math>
 +
|-
 +
! accelerationDampingCoeff
 +
|  (scalar)
 +
|| <math>{coeff}</math>
 +
|-
 +
! accelerationLimit
 +
|  (scalar)
 +
|| <math>\frac{m}{s^2}</math>
 +
|-
 +
! centreOfMass
 +
| Center of the rigid body mass (point)
 +
|| <math>{m}</math>
 +
|-
 +
! orientation
 +
| Orientation cosine matrix (tensor)
 +
|| <math>{cosines}</math>
 +
|-
 +
! velocity
 +
| Rigid body velocity
 +
|| <math>\frac{m}{s}</math>
 +
|-
 +
! acceleration
 +
| Rigid body acceleration
 +
|| <math>\frac{m}{s^2}</math>
 +
|-
 +
! angularMomentum
 +
| Rigid body moment
 +
|| <math>{kg}\frac{rad}{s}</math>
 +
|-
 +
! torque
 +
| Rigid body torque
 +
|| <math>{kg}\frac{m^2}{s^2}</math>
 +
|-
 +
! report
 +
| Enable print out (default is false)
 +
|| <math>{bool}</math>
 +
|}
 +
 
 +
===== Constraints =====
 +
 
 +
====== 6 DOF Rigid Body Motion Constraint "sixDoFRigidBodyMotionConstraint" ======
 +
 
 +
{| border="1" cellpadding="2"
 +
| File: pointDisplacement
 +
|-
 +
! Field name !! Description !! Dimension
 +
|-
 +
! tolerance
 +
| (scalar)
 +
|| <math>{unit}</math>
 +
|-
 +
! relaxationFactor
 +
| (scalar)
 +
|| <math>{unit}</math>
 +
|-
 +
! maxIterations
 +
| (label (int))
 +
|| <math>{unit}</math>
 +
|-
 +
|}
 +
 
 +
====== Fixed Axis "fixedAxis" ======
 +
sixDoFRigidBodyMotionConstraint.  Body may only rotate around an axis fixed in global space. (fixedAxis.H)
 +
 
 +
{| border="1" cellpadding="2"
 +
| File: pointDisplacement
 +
|-
 +
! Field name !! Description !! Dimension
 +
|-
 +
! axis
 +
| (vector)
 +
|| <math>{unit}</math>
 +
|-
 +
|}
 +
 
 +
====== Fixed Line "fixedLine" ======
 +
sixDoFRigidBodyMotionConstraint.  Reference point may only move along a line. (fixedLine.H)
 +
{| border="1" cellpadding="2"
 +
| File: pointDisplacement
 +
|-
 +
! Field name !! Description !! Dimension
 +
|-
 +
! refPoint
 +
| (point)
 +
|| <math>{m}</math>
 +
|-
 +
!direction
 +
| (vector)
 +
|| <math>{unit}</math>
 +
|-
 +
|}
 +
 
 +
====== Fixed Line "fixedOrientation" ======
 +
sixDoFRigidBodyMotionConstraint.  Orientation of body fixed global space. Only valid where the predicted deviation from alignment is < 90 degrees.
 +
 
 +
====== Fixed Line "fixedPlane" ======
 +
sixDoFRigidBodyMotionConstraint.  Reference point may only move along a plane.
 +
 
 +
====== Fixed Line "fixedPoint" ======
 +
sixDoFRigidBodyMotionConstraint.  Point fixed in space.
 +
 
 +
====== Fixed Line "linearAxialAngularSpring" ======
 +
sixDoFRigidBodyMotionRestraints model.  Linear axial angular spring.
 +
 
 +
====== Fixed Line "linearSpring" ======
 +
sixDoFRigidBodyMotionRestraints model.  Linear spring.
 +
 
 +
====== Fixed Line "sphericalAngularSpring" ======
 +
sixDoFRigidBodyMotionRestraints model.  Spherical angular spring.
 +
 
 +
====== Fixed Line "tabulatedAxialAngularSpring" ======
 +
sixDoFRigidBodyMotionRestraints model.  Axial angular spring with moment values drawn from an interpolation table.  Linear damping.
 +
 
 +
== Chapter 7: Models and physical properties ==
 +
 
 +
== Appendix A: The FoamX case manager ==
 +
 
 +
FoamX is '''obsolete''' as of version 1.5.
 +
 
 +
Getting FoamX compiled (and running) with the correct java version and CORBA interface was reportedly getting more and more difficult ... and end-users always seemed to encounter numerous problems getting it working with their particular java and network environment.
 +
 
 +
Besides which, using FoamX to edit dictionaries is comparable to performing keyhole surgery.
 +
 
 +
By dropping FoamX (and avoiding the additional work of creating a java-compatible interface for each feature), the developers could introduce very interesting and useful dictionary functionality fairly quickly:
 +
 
 +
* improved #include directive
 +
* new #inputMode directive
 +
* new $entry sub-dictionary expansions (try them - they are really cool)
 +
* new regular expression matching for dictionary entries (in an upcoming version)
 +
 
 +
== Appendix B: Reference information ==

Latest revision as of 05:39, 2 October 2012

Annotations concerning the OpenFOAM User Guide


Notes to contributors: Please include the chapter number of the printed version to avoid confusion (the Wiki might give different chapter numbers)

1 Chapter 1: Introduction

2 Chapter 2: Tutorials

3 Chapter 3: Applications and libraries

4 Chapter 4: OpenFOAM cases

4.1 Chapter 4.2: Basic input/output file format

4.2 Chapter 4.4: Numerical schemes

Contrary to what is stated in table 4.11 (Discretisation schemes available in ddtSchemes) CRNK is not bounded, see also P-42

4.3 Chapter 4.5: Solution and algorithm control

From http://www.cfd-online.com/Forums/openfoam/69257-nnonorthogonalcorrectors.html

There's usually nothing to worry about until the max non-orthogonality angle is approx 70 deg.

Non-orthogonal correctors are here to save you if your code is blowing up because the mesh is so non-orthogonal that the first solution is driving the velocity to be stupid. If your velocity is OK, you just keep doing "normal" correctors, without special need for non-orthogonal ones.

I use them on bad meshes, when the solver is giving me trouble. Usually, 1 is enough, and I never used more than 3.

5 Chapter 5: Mesh generation and conversion

Section 5.2.2 Base types The cyclic boundary condition can be specified to be rotational or translational explicitly by editing the boundary file. By adding the following lines (instead of the standard featureCos 0.9;) for translational:

       transform        translational;
       separationVector (Tx Ty Tz);

Where the separationVector is the vector between the two parts of the patch. If rotational patch is preferred, it can be specified by:

       transform       rotational;
       rotationAxis    (rAx rAy rAz);
       rotationCentre  (rCx rCy rCz);

Where the rotational axis and the rotational centre can be specified by the two vectors above. To see how the cyclic patch is coupled, use the debug flag in OpenFOAM-1.x/etc/controlDict. This gives you obj files of the patches and lines connecting each face. These can be visualized in paraview by conversion using objToVTK.

5.1 Section 5.3: Mesh generation with the blockMesh utility

5.1.1 5.3.1.3: The blocks

Valid versions: OF version 13.png: Starting with OpenFOAM 1.3 blocks can be now assigned to cellZones (The syntax is similar to the now obsolete blockMeshWithSets-utility).

5.2 Section 5.4: Mesh conversion

5.2.1 5.4.2: starToFoam

In section 5.4.2.6 there is a reference to the foamCorrectVrt-utility which can not be found in any of the 1.0.2, 1.1 and 1.2 distributions. Looking at the source I would say that this problem is already fixed by the current versions of starToFoam (but I can't test this theory because I have no StarCD).

6 Chapter 6: Post-processing

6.1 Dynamic Mesh

6.1.1 Six Degree Rigid Body Motion

Values for type: sixDoFRigidBodyDisplacement

File: pointDisplacement
Field name Description Dimension
mass mass of the rigid body (scalar) {kg}
momentOfInertia Moment of intertia of the rigid body mass (diagTensor) {kg*m^2}
initialCentreOfMass Initial center of the rigid body mass (point) {m}
initialOrientation Initial orientation cosine matrix (tensor) {m}
accelerationDampingCoeff (scalar) {coeff}
accelerationLimit (scalar) \frac{m}{s^2}
centreOfMass Center of the rigid body mass (point) {m}
orientation Orientation cosine matrix (tensor) {cosines}
velocity Rigid body velocity \frac{m}{s}
acceleration Rigid body acceleration \frac{m}{s^2}
angularMomentum Rigid body moment {kg}\frac{rad}{s}
torque Rigid body torque {kg}\frac{m^2}{s^2}
report Enable print out (default is false) {bool}
6.1.1.1 Constraints
6.1.1.1.1 6 DOF Rigid Body Motion Constraint "sixDoFRigidBodyMotionConstraint"
File: pointDisplacement
Field name Description Dimension
tolerance (scalar) {unit}
relaxationFactor (scalar) {unit}
maxIterations (label (int)) {unit}
6.1.1.1.2 Fixed Axis "fixedAxis"

sixDoFRigidBodyMotionConstraint. Body may only rotate around an axis fixed in global space. (fixedAxis.H)

File: pointDisplacement
Field name Description Dimension
axis (vector) {unit}
6.1.1.1.3 Fixed Line "fixedLine"
sixDoFRigidBodyMotionConstraint.  Reference point may only move along a line. (fixedLine.H)
File: pointDisplacement
Field name Description Dimension
refPoint (point) {m}
direction (vector) {unit}
6.1.1.1.4 Fixed Line "fixedOrientation"
sixDoFRigidBodyMotionConstraint.  Orientation of body fixed global space. Only valid where the predicted deviation from alignment is < 90 degrees.
6.1.1.1.5 Fixed Line "fixedPlane"

sixDoFRigidBodyMotionConstraint. Reference point may only move along a plane.

6.1.1.1.6 Fixed Line "fixedPoint"

sixDoFRigidBodyMotionConstraint. Point fixed in space.

6.1.1.1.7 Fixed Line "linearAxialAngularSpring"

sixDoFRigidBodyMotionRestraints model. Linear axial angular spring.

6.1.1.1.8 Fixed Line "linearSpring"

sixDoFRigidBodyMotionRestraints model. Linear spring.

6.1.1.1.9 Fixed Line "sphericalAngularSpring"

sixDoFRigidBodyMotionRestraints model. Spherical angular spring.

6.1.1.1.10 Fixed Line "tabulatedAxialAngularSpring"

sixDoFRigidBodyMotionRestraints model. Axial angular spring with moment values drawn from an interpolation table. Linear damping.

7 Chapter 7: Models and physical properties

8 Appendix A: The FoamX case manager

FoamX is obsolete as of version 1.5.

Getting FoamX compiled (and running) with the correct java version and CORBA interface was reportedly getting more and more difficult ... and end-users always seemed to encounter numerous problems getting it working with their particular java and network environment.

Besides which, using FoamX to edit dictionaries is comparable to performing keyhole surgery.

By dropping FoamX (and avoiding the additional work of creating a java-compatible interface for each feature), the developers could introduce very interesting and useful dictionary functionality fairly quickly:

  • improved #include directive
  • new #inputMode directive
  • new $entry sub-dictionary expansions (try them - they are really cool)
  • new regular expression matching for dictionary entries (in an upcoming version)

9 Appendix B: Reference information