mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
included subtract method
This commit is contained in:
@ -9,6 +9,6 @@ field/div/div.C
|
|||||||
field/randomise/randomise.C
|
field/randomise/randomise.C
|
||||||
field/interpolate/interpolate.C
|
field/interpolate/interpolate.C
|
||||||
|
|
||||||
basic/add/add.C
|
basic/addSubtract/addSubtract.C
|
||||||
|
|
||||||
LIB = $(FOAM_LIBBIN)/libfoamCalcFunctions
|
LIB = $(FOAM_LIBBIN)/libfoamCalcFunctions
|
||||||
|
|||||||
@ -24,7 +24,7 @@ License
|
|||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "add.H"
|
#include "addSubtract.H"
|
||||||
#include "addToRunTimeSelectionTable.H"
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
@ -33,15 +33,15 @@ namespace Foam
|
|||||||
{
|
{
|
||||||
namespace calcTypes
|
namespace calcTypes
|
||||||
{
|
{
|
||||||
defineTypeNameAndDebug(add, 0);
|
defineTypeNameAndDebug(addSubtract, 0);
|
||||||
addToRunTimeSelectionTable(calcType, add, dictionary);
|
addToRunTimeSelectionTable(calcType, addSubtract, dictionary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::calcTypes::add::writeAddFields
|
void Foam::calcTypes::addSubtract::writeAddSubtractFields
|
||||||
(
|
(
|
||||||
const Time& runTime,
|
const Time& runTime,
|
||||||
const fvMesh& mesh,
|
const fvMesh& mesh,
|
||||||
@ -50,48 +50,48 @@ void Foam::calcTypes::add::writeAddFields
|
|||||||
{
|
{
|
||||||
bool processed = false;
|
bool processed = false;
|
||||||
|
|
||||||
IOobject addFieldHeader
|
IOobject addSubtractFieldHeader
|
||||||
(
|
(
|
||||||
addFieldName_,
|
addSubtractFieldName_,
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ
|
IOobject::MUST_READ
|
||||||
);
|
);
|
||||||
|
|
||||||
if (addFieldHeader.headerOk())
|
if (addSubtractFieldHeader.headerOk())
|
||||||
{
|
{
|
||||||
writeAddField<scalar>
|
writeAddSubtractField<scalar>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addFieldHeader,
|
addSubtractFieldHeader,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
writeAddField<vector>
|
writeAddSubtractField<vector>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addFieldHeader,
|
addSubtractFieldHeader,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
writeAddField<sphericalTensor>
|
writeAddSubtractField<sphericalTensor>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addFieldHeader,
|
addSubtractFieldHeader,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
writeAddField<symmTensor>
|
writeAddSubtractField<symmTensor>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addFieldHeader,
|
addSubtractFieldHeader,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
writeAddField<tensor>
|
writeAddSubtractField<tensor>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addFieldHeader,
|
addSubtractFieldHeader,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
@ -100,23 +100,23 @@ void Foam::calcTypes::add::writeAddFields
|
|||||||
{
|
{
|
||||||
FatalError
|
FatalError
|
||||||
<< "Unable to process " << baseFieldName_
|
<< "Unable to process " << baseFieldName_
|
||||||
<< " + " << addFieldName_ << nl
|
<< " + " << addSubtractFieldName_ << nl
|
||||||
<< "No call to add for fields of type "
|
<< "No call to addSubtract for fields of type "
|
||||||
<< baseFieldHeader.headerClassName() << " + "
|
<< baseFieldHeader.headerClassName() << " + "
|
||||||
<< addFieldHeader.headerClassName() << nl << nl
|
<< addSubtractFieldHeader.headerClassName() << nl << nl
|
||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FatalErrorIn("calcTypes::add::writeAddFields()")
|
FatalErrorIn("calcTypes::addSubtract::writeAddSubtractFields()")
|
||||||
<< "Unable to read add field: " << addFieldName_
|
<< "Unable to read addSubtract field: " << addSubtractFieldName_
|
||||||
<< nl << exit(FatalError);
|
<< nl << exit(FatalError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::calcTypes::add::writeAddValues
|
void Foam::calcTypes::addSubtract::writeAddSubtractValues
|
||||||
(
|
(
|
||||||
const Time& runTime,
|
const Time& runTime,
|
||||||
const fvMesh& mesh,
|
const fvMesh& mesh,
|
||||||
@ -125,48 +125,48 @@ void Foam::calcTypes::add::writeAddValues
|
|||||||
{
|
{
|
||||||
bool processed = false;
|
bool processed = false;
|
||||||
|
|
||||||
writeAddValue<scalar>
|
writeAddSubtractValue<scalar>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addValueStr_,
|
addSubtractValueStr_,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
writeAddValue<vector>
|
writeAddSubtractValue<vector>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addValueStr_,
|
addSubtractValueStr_,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
writeAddValue<sphericalTensor>
|
writeAddSubtractValue<sphericalTensor>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addValueStr_,
|
addSubtractValueStr_,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
writeAddValue<symmTensor>
|
writeAddSubtractValue<symmTensor>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addValueStr_,
|
addSubtractValueStr_,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
writeAddValue<tensor>
|
writeAddSubtractValue<tensor>
|
||||||
(
|
(
|
||||||
baseFieldHeader,
|
baseFieldHeader,
|
||||||
addValueStr_,
|
addSubtractValueStr_,
|
||||||
mesh,
|
mesh,
|
||||||
processed
|
processed
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!processed)
|
if (!processed)
|
||||||
{
|
{
|
||||||
FatalErrorIn("calcTypes::add::writeAddValues()")
|
FatalErrorIn("calcTypes::addSubtract::writeAddSubtractValue()")
|
||||||
<< "Unable to process " << baseFieldName_
|
<< "Unable to process " << baseFieldName_
|
||||||
<< " + " << addValueStr_ << nl
|
<< " + " << addSubtractValueStr_ << nl
|
||||||
<< "No call to add for fields of type "
|
<< "No call to addSubtract for fields of type "
|
||||||
<< baseFieldHeader.headerClassName() << nl << nl
|
<< baseFieldHeader.headerClassName() << nl << nl
|
||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
@ -175,36 +175,38 @@ void Foam::calcTypes::add::writeAddValues
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::calcTypes::add::add()
|
Foam::calcTypes::addSubtract::addSubtract()
|
||||||
:
|
:
|
||||||
calcType(),
|
calcType(),
|
||||||
baseFieldName_(""),
|
baseFieldName_(""),
|
||||||
calcType_(FIELD),
|
calcType_(FIELD),
|
||||||
addFieldName_(""),
|
addSubtractFieldName_(""),
|
||||||
addValueStr_(""),
|
addSubtractValueStr_(""),
|
||||||
resultName_("")
|
resultName_(""),
|
||||||
|
calcMode_(ADD)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Foam::calcTypes::add::~add()
|
Foam::calcTypes::addSubtract::~addSubtract()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void Foam::calcTypes::add::init()
|
void Foam::calcTypes::addSubtract::init()
|
||||||
{
|
{
|
||||||
argList::validArgs.append("add");
|
argList::validArgs.append("add");
|
||||||
argList::validArgs.append("baseField");
|
argList::validArgs.append("baseField");
|
||||||
|
argList::validArgs.append("calcMode");
|
||||||
argList::validOptions.insert("field", "fieldName");
|
argList::validOptions.insert("field", "fieldName");
|
||||||
argList::validOptions.insert("value", "valueString");
|
argList::validOptions.insert("value", "valueString");
|
||||||
argList::validOptions.insert("resultName", "fieldName");
|
argList::validOptions.insert("resultName", "fieldName");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::calcTypes::add::preCalc
|
void Foam::calcTypes::addSubtract::preCalc
|
||||||
(
|
(
|
||||||
const argList& args,
|
const argList& args,
|
||||||
const Time& runTime,
|
const Time& runTime,
|
||||||
@ -212,21 +214,38 @@ void Foam::calcTypes::add::preCalc
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
baseFieldName_ = args.additionalArgs()[1];
|
baseFieldName_ = args.additionalArgs()[1];
|
||||||
|
word calcModeName = args.additionalArgs()[2];
|
||||||
|
|
||||||
|
if (calcModeName == "add")
|
||||||
|
{
|
||||||
|
calcMode_ = ADD;
|
||||||
|
}
|
||||||
|
else if (calcModeName == "subtract")
|
||||||
|
{
|
||||||
|
calcMode_ = SUBTRACT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FatalErrorIn("calcTypes::addSubtract::preCalc")
|
||||||
|
<< "Invalid calcMode: " << calcModeName << nl
|
||||||
|
<< " Valid calcModes are add and subtract" << nl
|
||||||
|
<< exit(FatalError);
|
||||||
|
}
|
||||||
|
|
||||||
if (args.options().found("field"))
|
if (args.options().found("field"))
|
||||||
{
|
{
|
||||||
addFieldName_ = args.options()["field"];
|
addSubtractFieldName_ = args.options()["field"];
|
||||||
calcType_ = FIELD;
|
calcType_ = FIELD;
|
||||||
}
|
}
|
||||||
else if (args.options().found("value"))
|
else if (args.options().found("value"))
|
||||||
{
|
{
|
||||||
addValueStr_ = args.options()["value"];
|
addSubtractValueStr_ = args.options()["value"];
|
||||||
calcType_ = VALUE;
|
calcType_ = VALUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FatalErrorIn("calcTypes::add::preCalc")
|
FatalErrorIn("calcTypes::addSubtract::preCalc")
|
||||||
<< "add requires either -field or -value option"
|
<< "addSubtract requires either -field or -value option"
|
||||||
<< nl << exit(FatalError);
|
<< nl << exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,7 +256,7 @@ void Foam::calcTypes::add::preCalc
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::calcTypes::add::calc
|
void Foam::calcTypes::addSubtract::calc
|
||||||
(
|
(
|
||||||
const argList& args,
|
const argList& args,
|
||||||
const Time& runTime,
|
const Time& runTime,
|
||||||
@ -258,17 +277,17 @@ void Foam::calcTypes::add::calc
|
|||||||
{
|
{
|
||||||
case FIELD:
|
case FIELD:
|
||||||
{
|
{
|
||||||
writeAddFields(runTime, mesh, baseFieldHeader);
|
writeAddSubtractFields(runTime, mesh, baseFieldHeader);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case VALUE:
|
case VALUE:
|
||||||
{
|
{
|
||||||
writeAddValues(runTime, mesh, baseFieldHeader);
|
writeAddSubtractValues(runTime, mesh, baseFieldHeader);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
FatalErrorIn("calcTypes::add::calc")
|
FatalErrorIn("calcTypes::addSubtract::calc")
|
||||||
<< "unknown calcType " << calcType_ << nl
|
<< "unknown calcType " << calcType_ << nl
|
||||||
<< abort(FatalError);
|
<< abort(FatalError);
|
||||||
}
|
}
|
||||||
@ -276,7 +295,7 @@ void Foam::calcTypes::add::calc
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FatalErrorIn("calcTypes::add::calc")
|
FatalErrorIn("calcTypes::addSubtract::calc")
|
||||||
<< "Unable to read base field: " << baseFieldName_
|
<< "Unable to read base field: " << baseFieldName_
|
||||||
<< nl << exit(FatalError);
|
<< nl << exit(FatalError);
|
||||||
}
|
}
|
||||||
@ -23,28 +23,30 @@ License
|
|||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
Class
|
Class
|
||||||
Foam::calcTypes::add
|
Foam::calcTypes::addSubtract
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Adds and field or value to base field.
|
adds/subtracts a field or value to/from a base field.
|
||||||
|
|
||||||
New field name specified by -resultName option, or automatically as:
|
New field name specified by -resultName option, or automatically as:
|
||||||
<baseFieldName>_plus_<addFieldName>
|
<baseFieldName>_add_<addSubtractFieldName>
|
||||||
<baseFieldName>_plus_value
|
<baseFieldName>_add_value
|
||||||
|
<baseFieldName>_subtract_<addSubtractFieldName>
|
||||||
|
<baseFieldName>_subtract_value
|
||||||
|
|
||||||
Example usage:
|
Example usage:
|
||||||
add p -value 100000 -resultName pAbs
|
addSubtract p add -value 100000 -resultName pAbs
|
||||||
add U -field U0
|
addSubtract U subtract -field U0
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
add.C
|
addSubtract.C
|
||||||
writeAddField.C
|
writeaddSubtractField.C
|
||||||
writeAddValue.C
|
writeaddSubtractValue.C
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#ifndef add_H
|
#ifndef addSubtract_H
|
||||||
#define add_H
|
#define addSubtract_H
|
||||||
|
|
||||||
#include "calcType.H"
|
#include "calcType.H"
|
||||||
|
|
||||||
@ -57,10 +59,10 @@ namespace calcTypes
|
|||||||
{
|
{
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
Class add Declaration
|
Class addSubtract Declaration
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
class add
|
class addSubtract
|
||||||
:
|
:
|
||||||
public calcType
|
public calcType
|
||||||
{
|
{
|
||||||
@ -72,41 +74,50 @@ public:
|
|||||||
VALUE
|
VALUE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum calcModes
|
||||||
|
{
|
||||||
|
ADD,
|
||||||
|
SUBTRACT
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
//- Name of base field (to add to)
|
//- Name of base field (to addSubtract to)
|
||||||
word baseFieldName_;
|
word baseFieldName_;
|
||||||
|
|
||||||
//- Calc type as given by enumerations above
|
//- Calc type as given by enumerations above
|
||||||
calcTypes calcType_;
|
calcTypes calcType_;
|
||||||
|
|
||||||
//- Name of field to add
|
//- Name of field to add/subtract
|
||||||
word addFieldName_;
|
word addSubtractFieldName_;
|
||||||
|
|
||||||
//- String representation of value to add
|
//- String representation of value to add/subtract
|
||||||
string addValueStr_;
|
string addSubtractValueStr_;
|
||||||
|
|
||||||
//- Name of result field
|
//- Name of result field
|
||||||
word resultName_;
|
word resultName_;
|
||||||
|
|
||||||
|
//- Mode - addSubtract/subtract
|
||||||
|
calcModes calcMode_;
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
// Output
|
// Output
|
||||||
|
|
||||||
//- Calc and output field additions
|
//- Calc and output field addSubtractitions
|
||||||
void writeAddFields
|
void writeAddSubtractFields
|
||||||
(
|
(
|
||||||
const Time& runTime,
|
const Time& runTime,
|
||||||
const fvMesh& mesh,
|
const fvMesh& mesh,
|
||||||
const IOobject& baseFieldHeader
|
const IOobject& baseFieldHeader
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Calc and output field and value additions
|
//- Calc and output field and value addSubtractitions
|
||||||
void writeAddValues
|
void writeAddSubtractValues
|
||||||
(
|
(
|
||||||
const Time& runTime,
|
const Time& runTime,
|
||||||
const fvMesh& mesh,
|
const fvMesh& mesh,
|
||||||
@ -115,10 +126,10 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
//- Disallow default bitwise copy construct
|
//- Disallow default bitwise copy construct
|
||||||
add(const add&);
|
addSubtract(const addSubtract&);
|
||||||
|
|
||||||
//- Disallow default bitwise assignment
|
//- Disallow default bitwise assignment
|
||||||
void operator=(const add&);
|
void operator=(const addSubtract&);
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -150,19 +161,19 @@ protected:
|
|||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|
||||||
//- Write add field
|
//- Write addSubtract field
|
||||||
template<class Type>
|
template<class Type>
|
||||||
void writeAddField
|
void writeAddSubtractField
|
||||||
(
|
(
|
||||||
const IOobject& baseHeader,
|
const IOobject& baseHeader,
|
||||||
const IOobject& addHeader,
|
const IOobject& addSubtractHeader,
|
||||||
const fvMesh& mesh,
|
const fvMesh& mesh,
|
||||||
bool& processed
|
bool& processed
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Write add value
|
//- Write addSubtract value
|
||||||
template<class Type>
|
template<class Type>
|
||||||
void writeAddValue
|
void writeAddSubtractValue
|
||||||
(
|
(
|
||||||
const IOobject& baseHeader,
|
const IOobject& baseHeader,
|
||||||
const string& valueStr,
|
const string& valueStr,
|
||||||
@ -174,18 +185,18 @@ protected:
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
TypeName("add");
|
TypeName("addSubtract");
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
//- Construct null
|
//- Construct null
|
||||||
add();
|
addSubtract();
|
||||||
|
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
|
|
||||||
virtual ~add();
|
virtual ~addSubtract();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -197,8 +208,8 @@ public:
|
|||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
#ifdef NoRepository
|
#ifdef NoRepository
|
||||||
# include "writeAddField.C"
|
# include "writeAddSubtractField.C"
|
||||||
# include "writeAddValue.C"
|
# include "writeAddSubtractValue.C"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -25,7 +25,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
void Foam::calcTypes::add::writeAddField
|
void Foam::calcTypes::addSubtract::writeAddSubtractField
|
||||||
(
|
(
|
||||||
const IOobject& baseHeader,
|
const IOobject& baseHeader,
|
||||||
const IOobject& addHeader,
|
const IOobject& addHeader,
|
||||||
@ -33,11 +33,6 @@ void Foam::calcTypes::add::writeAddField
|
|||||||
bool& processed
|
bool& processed
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (resultName_ == "")
|
|
||||||
{
|
|
||||||
resultName_ = baseHeader.name() + "_plus_" + addHeader.name();
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
|
typedef GeometricField<Type, fvPatchField, volMesh> fieldType;
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -46,6 +41,19 @@ void Foam::calcTypes::add::writeAddField
|
|||||||
&& baseHeader.headerClassName() == addHeader.headerClassName()
|
&& baseHeader.headerClassName() == addHeader.headerClassName()
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
if (resultName_ == "")
|
||||||
|
{
|
||||||
|
if (calcMode_ == ADD)
|
||||||
|
{
|
||||||
|
resultName_ = baseHeader.name() + "_add_" + addHeader.name();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resultName_ = baseHeader.name() + "_subtract_"
|
||||||
|
+ addHeader.name();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Info<< " Reading " << baseHeader.name() << endl;
|
Info<< " Reading " << baseHeader.name() << endl;
|
||||||
fieldType baseField(baseHeader, mesh);
|
fieldType baseField(baseHeader, mesh);
|
||||||
|
|
||||||
@ -65,7 +73,7 @@ void Foam::calcTypes::add::writeAddField
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::NO_READ
|
IOobject::NO_READ
|
||||||
),
|
),
|
||||||
baseField + addField
|
calcMode_ == ADD ? baseField + addField : baseField - addField
|
||||||
);
|
);
|
||||||
newField.write();
|
newField.write();
|
||||||
}
|
}
|
||||||
@ -25,7 +25,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
void Foam::calcTypes::add::writeAddValue
|
void Foam::calcTypes::addSubtract::writeAddSubtractValue
|
||||||
(
|
(
|
||||||
const IOobject& baseHeader,
|
const IOobject& baseHeader,
|
||||||
const string& valueStr,
|
const string& valueStr,
|
||||||
@ -39,14 +39,21 @@ void Foam::calcTypes::add::writeAddValue
|
|||||||
{
|
{
|
||||||
if (resultName_ == "")
|
if (resultName_ == "")
|
||||||
{
|
{
|
||||||
resultName_ = baseHeader.name() + "_plus_value";
|
if (calcMode_ == ADD)
|
||||||
|
{
|
||||||
|
resultName_ = baseHeader.name() + "_add_value";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resultName_ = baseHeader.name() + "_subtract_value";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Type value;
|
Type value;
|
||||||
IStringStream(valueStr)() >> value;
|
IStringStream(valueStr)() >> value;
|
||||||
|
|
||||||
Info<< " Reading " << baseHeader.name() << endl;
|
Info<< " Reading " << baseHeader.name() << endl;
|
||||||
fieldType baseField(baseHeader, mesh);
|
fieldType baseField(baseHeader, mesh);
|
||||||
|
|
||||||
fieldType newField
|
fieldType newField
|
||||||
(
|
(
|
||||||
@ -61,8 +68,17 @@ void Foam::calcTypes::add::writeAddValue
|
|||||||
);
|
);
|
||||||
|
|
||||||
Info<< " Calculating " << resultName_ << endl;
|
Info<< " Calculating " << resultName_ << endl;
|
||||||
newField == baseField
|
if (calcMode_ == ADD)
|
||||||
+ dimensioned<Type>("value", baseField.dimensions(), value);
|
{
|
||||||
|
newField == baseField
|
||||||
|
+ dimensioned<Type>("value", baseField.dimensions(), value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newField == baseField
|
||||||
|
- dimensioned<Type>("value", baseField.dimensions(), value);
|
||||||
|
}
|
||||||
|
|
||||||
newField.write();
|
newField.write();
|
||||||
|
|
||||||
processed = true;
|
processed = true;
|
||||||
Reference in New Issue
Block a user