STYLE: use dynamicCode/ instead of codeStream/ for dynamically generated code

This commit is contained in:
Mark Olesen
2011-02-24 13:21:39 +01:00
parent 4aafea74a9
commit 51399bbbd1
10 changed files with 26 additions and 23 deletions

View File

@ -140,7 +140,7 @@
+ only files that can be re-read are being checked. Drastic reduction of + only files that can be re-read are being checked. Drastic reduction of
number of files to check. number of files to check.
*** *New* #codeStream dictionary entry *** *New* #codeStream dictionary entry
Uses on-the-fly compilation of OpenFOAM C++ code to construct dictionary. Uses dynamic compilation of OpenFOAM C++ code to construct dictionary.
E.g. in blockMeshDict: E.g. in blockMeshDict:
#+BEGIN_SRC c++ #+BEGIN_SRC c++
convertToMeters 0.001; convertToMeters 0.001;
@ -160,7 +160,7 @@
#}; #};
} }
#+END_SRC #+END_SRC
See also ./[[doc/changes/codeStream.org]] See also ./[[doc/changes/dynamicCode.org]]
* Solvers * Solvers
A number of new solvers have been developed for a range of engineering A number of new solvers have been developed for a range of engineering
@ -191,7 +191,7 @@
+ takes optional fieldName to sample + takes optional fieldName to sample
+ directMapped patch added 'normal' method to calculate sample points + directMapped patch added 'normal' method to calculate sample points
to e.g. sample fields just above wall (e.g. for streaklines) to e.g. sample fields just above wall (e.g. for streaklines)
+ *New* codedFixedValue: Uses the on-the-fly code compilation from #codeStream + *New* codedFixedValue: Uses the dynamic code compilation from #codeStream
to provide an in-line fixedValueFvPatchScalarField. E.g. to provide an in-line fixedValueFvPatchScalarField. E.g.
#+BEGIN_SRC c++ #+BEGIN_SRC c++
outlet outlet
@ -206,7 +206,7 @@
#}; #};
} }
#+END_SRC #+END_SRC
See also [[./doc/changes/codeStream.org]] See also [[./doc/changes/dynamicCode.org]]
* Utilities * Utilities
There have been some utilities added and updated in this release. There have been some utilities added and updated in this release.

View File

@ -57,13 +57,13 @@ cleanTimeDirectories()
# #
# Remove codeStream subdirectory if it looks appropriate # Remove dynamicCode subdirectory if it looks appropriate
# #
cleanCodeStream() cleanDynamicCode()
{ {
if [ -d system -a -d codeStream ] if [ -d system -a -d dynamicCode ]
then then
rm -rf codeStream > /dev/null 2>&1 rm -rf dynamicCode > /dev/null 2>&1
fi fi
} }
@ -71,7 +71,7 @@ cleanCodeStream()
cleanCase() cleanCase()
{ {
cleanTimeDirectories cleanTimeDirectories
cleanCodeStream cleanDynamicCode
rm -rf processor* > /dev/null 2>&1 rm -rf processor* > /dev/null 2>&1
rm -rf probes* > /dev/null 2>&1 rm -rf probes* > /dev/null 2>&1

View File

@ -1,6 +1,6 @@
# -*- mode: org; -*- # -*- mode: org; -*-
# #
#+TITLE: =codeStream=: On-the-fly code compilation #+TITLE: =dynamicCode=: Dynamic code compilation
#+AUTHOR: OpenCFD Ltd. #+AUTHOR: OpenCFD Ltd.
#+DATE: TBA #+DATE: TBA
#+LINK: http://www.openfoam.com #+LINK: http://www.openfoam.com
@ -47,12 +47,13 @@
=code=, =codeInclude=, =codeOptions= sections (these are just strings) and =code=, =codeInclude=, =codeOptions= sections (these are just strings) and
calculates the SHA1 checksum of the contents. calculates the SHA1 checksum of the contents.
- it copies a template file - it copies a template file
=($FOAM_CODESTREAM_TEMPLATES/codeStreamTemplate.C)=, substituting all =(~OpenFOAM/codeTemplates/dynamicCode/codeStreamTemplate.C)= or
=($FOAM_CODE_TEMPLATES/codeStreamTemplate.C)=, substituting all
occurences of =code=, =codeInclude=, =codeOptions=. occurences of =code=, =codeInclude=, =codeOptions=.
- it writes library source files to =codeStream/<SHA1>= and compiles - it writes library source files to =dynamicCode/<SHA1>= and compiles
it using =wmake libso=. it using =wmake libso=.
- the resulting library is generated under - the resulting library is generated under
=codeStream/platforms/$WM_OPTIONS/lib= and is loaded (=dlopen=, =dlsym=) =dynamicCode/platforms/$WM_OPTIONS/lib= and is loaded (=dlopen=, =dlsym=)
and the function executed and the function executed
- the function will have written its output into the Ostream which then gets - the function will have written its output into the Ostream which then gets
used to construct the entry to replace the whole =#codeStream= section. used to construct the entry to replace the whole =#codeStream= section.

View File

@ -39,7 +39,7 @@ InfoSwitches
writePrecision 6; writePrecision 6;
writeJobInfo 0; writeJobInfo 0;
// Allow case-supplied c++ code (#codeStream, codedFixedValue) // Allow case-supplied C++ code (#codeStream, codedFixedValue)
allowSystemOperations 0; allowSystemOperations 0;
} }

View File

@ -63,8 +63,9 @@ setenv FOAM_SITE_LIBBIN $WM_PROJECT_INST_DIR/site/$WM_PROJECT_VERSION/platforms/
setenv FOAM_USER_APPBIN $WM_PROJECT_USER_DIR/platforms/$WM_OPTIONS/bin setenv FOAM_USER_APPBIN $WM_PROJECT_USER_DIR/platforms/$WM_OPTIONS/bin
setenv FOAM_USER_LIBBIN $WM_PROJECT_USER_DIR/platforms/$WM_OPTIONS/lib setenv FOAM_USER_LIBBIN $WM_PROJECT_USER_DIR/platforms/$WM_OPTIONS/lib
# codeStream templates # dynamicCode templates
setenv FOAM_CODESTREAM_TEMPLATE_DIR $WM_PROJECT_DIR/etc/codeTemplates/codeStream # - default location is the "~OpenFOAM/codeTemplates/dynamicCode" expansion
# setenv FOAM_CODE_TEMPLATES $WM_PROJECT_DIR/etc/codeTemplates/dynamicCode
# convenience # convenience
setenv FOAM_APP $WM_PROJECT_DIR/applications setenv FOAM_APP $WM_PROJECT_DIR/applications

View File

@ -86,8 +86,9 @@ export FOAM_SITE_LIBBIN=$WM_PROJECT_INST_DIR/site/$WM_PROJECT_VERSION/platforms/
export FOAM_USER_APPBIN=$WM_PROJECT_USER_DIR/platforms/$WM_OPTIONS/bin export FOAM_USER_APPBIN=$WM_PROJECT_USER_DIR/platforms/$WM_OPTIONS/bin
export FOAM_USER_LIBBIN=$WM_PROJECT_USER_DIR/platforms/$WM_OPTIONS/lib export FOAM_USER_LIBBIN=$WM_PROJECT_USER_DIR/platforms/$WM_OPTIONS/lib
# codeStream templates # dynamicCode templates
export FOAM_CODESTREAM_TEMPLATE_DIR=$WM_PROJECT_DIR/etc/codeTemplates/codeStream # - default location is the "~OpenFOAM/codeTemplates/dynamicCode" expansion
# export FOAM_CODE_TEMPLATES=$WM_PROJECT_DIR/etc/codeTemplates/dynamicCode
# convenience # convenience
export FOAM_APP=$WM_PROJECT_DIR/applications export FOAM_APP=$WM_PROJECT_DIR/applications

View File

@ -41,10 +41,10 @@ int Foam::codeStreamTools::allowSystemOperations
const Foam::word Foam::codeStreamTools::codeTemplateEnvName const Foam::word Foam::codeStreamTools::codeTemplateEnvName
= "FOAM_CODESTREAM_TEMPLATES"; = "FOAM_CODE_TEMPLATES";
const Foam::fileName Foam::codeStreamTools::codeTemplateDirName const Foam::fileName Foam::codeStreamTools::codeTemplateDirName
= "codeTemplates/codeStream"; = "codeTemplates/dynamicCode";
// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * // // * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
@ -73,7 +73,7 @@ void Foam::codeStreamTools::checkSecurity
Foam::fileName Foam::codeStreamTools::codePath(const word& subDirName) Foam::fileName Foam::codeStreamTools::codePath(const word& subDirName)
{ {
return stringOps::expand("$FOAM_CASE/codeStream/" + subDirName); return stringOps::expand("$FOAM_CASE/dynamicCode/" + subDirName);
} }
@ -81,7 +81,7 @@ Foam::fileName Foam::codeStreamTools::libPath(const word& codeName)
{ {
return stringOps::expand return stringOps::expand
( (
"$FOAM_CASE/codeStream/platforms/$WM_OPTIONS/lib/lib" "$FOAM_CASE/dynamicCode/platforms/$WM_OPTIONS/lib/lib"
+ codeName + ".so" + codeName + ".so"
); );
} }
@ -95,7 +95,7 @@ Foam::string Foam::codeStreamTools::libTarget(const word& codeName)
Foam::fileName Foam::codeStreamTools::findTemplate(const word& templateFile) Foam::fileName Foam::codeStreamTools::findTemplate(const word& templateFile)
{ {
// try to get template from FOAM_CODESTREAM_TEMPLATES // try to get template from FOAM_CODE_TEMPLATES
fileName templateDir(Foam::getEnv(codeTemplateEnvName)); fileName templateDir(Foam::getEnv(codeTemplateEnvName));
fileName file; fileName file;