Commit Graph

959 Commits

Author SHA1 Message Date
00328814d9 disconnected cell check 2009-03-06 13:34:35 +00:00
31964adc76 Averaging does not need to be weighted if the fields being averaged are extensive - they weight themselves automatically. Recording momentum and energy denisty, and averaging them, then once decent averaged fields exist, using the new dsmcFields utility to create the intensive fields: UMean and TMean (translational, internal and overall). 2009-03-06 12:59:58 +00:00
a967daeb34 Change of plan - fields will be stored or referenced only at the solver level and tmps will be returned from the clouds to give them their instantaneous values. Only T and U will be supplied to the dsmcCloud, as before, to provide boundary conditions. Added required field calculation functions. Taking care about what is measured - a U field requires sum(momentum)/sum(mass) per cell - cells can have zero particles in them, hence divide by zero problems. Averaging the momentum field and the rhoM field, and constructing the velocity by dividing the averages as a post-processing stage is a safer and more physcially correct method. 2009-03-05 19:15:26 +00:00
11d9c0f279 rename snappy parameter 2009-03-05 17:01:31 +00:00
7e69b33586 include file 2009-03-05 17:01:16 +00:00
50df688455 demand driven volPointInterpolation 2009-03-05 14:01:23 +00:00
aa7be71de3 problem cell deletion 2009-03-05 13:11:28 +00:00
9ce984d1dc added edge/triFace to the hashing tests 2009-03-05 12:39:22 +01:00
7544164d53 regIOobject, Hasher, IOobject tweak
- regIOobject: don't re-register an unregister object on rename/assignment
- Hasher: split-off HasherInt with uint32_t specializations
- IOobject: writeBanner/writeDivider return Stream for easier chaining.

... also dropped some namespace bracketing while I was at it.
2009-03-05 12:06:57 +01:00
0cfce1a7ab Merge commit 'OpenCFD/master' into olesenm 2009-03-05 11:00:34 +01:00
65bb236e4f Added new fields to solver and basic calculation of momentum and energy change on wall impact. Need to add references to new fields to DsmcCloud and constructors, all references are to be non-const as the field calculation will occur inside the DsmcCloud. 2009-03-04 18:00:57 +00:00
f411ac6884 patchnames on uncached meshes 2009-03-04 12:34:53 +00:00
1a2bcf7d84 Merge commit 'OpenCFD/master' into olesenm 2009-03-04 12:20:51 +01:00
17548296be Switched from old hashing functions to use Bob Jenkins' hash routine
- If the underlying type is contiguous, FixedList hashes its storage directly.
- Drop labelPairHash (non-commutative) from fvMeshDistribute since
  FixedList::Hash does the right thing anyhow.
- Hash<edge> specialization is commutative, without multiplication.
- Hash<triFace> specialization kept multiplication (but now uLabel).
  There's not much point optimizing it, since it's not used much anyhow.

Misc. changes

- added StaticAssert to NamedEnum.H
- label.H / uLabel.H : define FOAM_LABEL_MAX, FOAM_ULABEL_MAX with the
  values finally used for the storage.  These can be useful for pre-processor
  checks elsewhere (although I stopped needing them in the meantime).
2009-03-04 10:50:14 +01:00
f5d45542ae Added Larsen Borgnakke internal energy redistribution and all supporting variables and function calls. Added energy and momentum monitoring functions. Added U and T fields to be used for boundary conditions and field measurement. Modified constructors accordingly. Now reading dsmcInitialiseDict in the Cloud, not the application. Initialisation dict now reads a subdict of <species keyword> <number density> entries. 2009-03-03 13:39:52 +00:00
44a86232af Added Jenkin's hash functions in C++ form
- not much speed difference between SuperFastHash and Jenkin's lookup3 but
  both are 5-10% faster than what is currently implemented in Foam::string,
  albeit inlining probably helps there.

- TODO: integration with existing infrastructure
2009-03-02 19:57:17 +01:00
b5add8f750 Merge branch 'dsmc' of ssh://graham@hunt//home/noisy3/OpenFOAM/OpenFOAM-dev into dsmc 2009-03-02 13:21:40 +00:00
e10c3a86ba minor formatting/coding changes 2009-03-02 13:18:45 +00:00
8b4c6f0662 Merge branch 'master' into dsmc 2009-03-02 13:11:18 +00:00
106d417de0 StaticAssert added
- catch people using silly template sizes for FixedList, PackedList
2009-02-27 16:41:51 +01:00
dbc9b7427a PackedList iterator bugfix
- compare iteratorBase == iteratorBase by value, not position
  thus this works
      list[a] == list[b] ...

- compare iterator == iteratorBase and const_iterator == iteratorBase
  by position, not value. The inheritance rules means that this works:
      iter == list.end() ...
  this will compare positions:
      iter == list[5];
  Of course, this will still compare values:
      *iter == list[5];
2009-02-27 13:43:43 +01:00
114fc6a9bd unnecessary linkage 2009-02-27 12:36:21 +00:00
a46c85f5a4 HashTable changes
- make table power-of-two, but since it seems to give 1-2% performance
  improvement, maybe forget it too.

- remove two-argument form of hashing classes and do the modulus direclty
  within HashTable instead. This simplifies things a fair bit.

- migrate Hash<void*> from db/dlLibrary to primitives/hashes/Hash
2009-02-26 17:49:47 +01:00
2aeee852e8 PackedList bugfix, HashTable tweak
- it was possible to create a PackedList::iterator from a
  PackedList::const_iterator and violate const-ness

- added HashTable::printInfo for emitting some information

- changed default table sizes from 100 -> 128 in preparation for future
  2^n table sizes
2009-02-26 15:32:47 +01:00
9edb5b4941 Changing template-depth back to 40. Adding initialisation functions and constantProperties construction. 2009-02-25 18:04:51 +00:00
e562aecb73 HashTable performance: find(), found() check nElmts_ instead of tableSize_
- much better performance on empty tables (4-6x speedup), neutral
  performance change on filled tables. Since tableSize_ is non-zero when
  nElmts_ is, there is no modulus zero problem.
2009-02-25 18:58:48 +01:00
507ad1e643 Merge commit 'OpenCFD/master' into olesenm 2009-02-25 10:50:26 +01:00
c49b302aa3 added solutionD and geometricD 2009-02-24 19:20:55 +00:00
5fca1e879d Finished DSMC code initial layout and test solver - both compile. Using lagrangian/dsmc local version of WallInteractionModel until requirements stabilise. Removed use of InjectionModel - not suitable, designed for continuum cases, requires single constProps from trackData - multispecies DSMC requires a List of constantProperties, one for each species. 2009-02-24 18:10:26 +00:00
8d97ebf3cd Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev 2009-02-24 15:57:53 +00:00
1f7a41b297 cosmetics 2009-02-24 15:57:34 +00:00
af8a42067c collapse cell detection 2009-02-24 12:05:35 +00:00
9cea1db461 Removing CV mesher from dsmc branch 2009-02-24 10:10:31 +00:00
7f9e4755cd Adding initial dsmc cloud and solver. 2009-02-23 18:55:24 +00:00
53ab605456 Merge branch 'master' into cvm 2009-02-23 12:14:29 +00:00
2ad849811b Modified grading function. 2009-02-20 18:36:48 +00:00
a1525f016a extrapolate to any non-constraint patch 2009-02-20 16:47:09 +00:00
c09bbf8a25 Added distance to and index of closest surface patch to indexedVertex, using this to preform tests of near surface grading and refinement. 2009-02-19 18:01:13 +00:00
b1fe3cc51a processorFvPatchField now holds opposite value; not interpolate 2009-02-19 11:15:32 +00:00
7f2f779779 Fixes to point insertion, making faceAreaWeight normalised, not hard coded to cell size, adding tweak to fertex removal criteria to allow selective insertion at short-edge midpoint if the vertices have not already been flagged for removal. 2009-02-18 18:57:09 +00:00
4b60453cf1 use while (runTime.loop() { .. } where possible in solvers
- change system/controlDict to use functions {..} instead of functions (..);
  * This is internally more efficient
- fixed formatting of system/controlDict functions entry

- pedantic change: use 'return 0' instead of 'return(0)' in the applications,
  since return is a C/C++ keyword, not a function.
2009-02-18 08:57:10 +01:00
aa6710901e Added Time::loop() to allow the
while(runTime.loop())
{
...
}

idiom.

Demonstrated in the shallowWaterFoam solver.
2009-02-17 22:00:59 +00:00
8695977fc5 Added point removal for short Delaunay edges in rotational controller as well as small and highly conntected dual cell removal. 2009-02-17 17:58:28 +00:00
fcd4e88e0e Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev 2009-02-17 17:07:16 +00:00
17b2e50e9c Added shallowWaterFoam solver and tutorial case. 2009-02-17 17:07:09 +00:00
19aa23d707 Merge commit 'OpenCFD/master' into olesenm 2009-02-17 16:35:00 +01:00
c799fb0014 renamed to be consistent with new solver naming convention 2009-02-17 12:27:38 +00:00
a5ab4126d8 renamed to be consistent with new solver naming convention 2009-02-17 12:09:27 +00:00
c2256e51f3 change solvers, utilities, etc. to use while (..) time-looping idiom
- this (now deprecated) idiom:
      for (runTime++; !runTime.end(); runTime++) { ... }
  has a few problems:
    * stop-on-next-write will be off-by-one (ie, doesn't work)
    * function objects are not executed on exit with runTime.end()
  Fixing these problems is not really possible.

- this idiom
      while (runTime.run())
      {
          runTime++;
          ...
      }
  works without the above problems.
2009-02-17 08:47:42 +01:00
0d4433cb33 Merge branch 'master' into cvm 2009-02-16 19:19:19 +00:00