[sourcegen] Simplify interface

This commit is contained in:
Ingmar Schoegl 2025-01-26 12:21:20 -06:00 committed by Ray Speth
parent e936e267da
commit 384809fb86
7 changed files with 54 additions and 48 deletions

View File

@ -7,28 +7,28 @@ docstring: |-
prefix: func13
base: Func1
recipes:
- name: check
implements: checkFunc1
- name: newBasic
- name: checkFunc1 # previously: check
- name: newBasic # previously: new_basic
implements: newFunc1(const string&, double)
- name: newAdvanced
- name: newAdvanced # previously: new_advanced
implements: newFunc1(const string&, const vector<double>&)
- name: newCompound
- name: newCompound # previously: new_compound
implements: newFunc1(const string&, const shared_ptr<Func1>, const shared_ptr<Func1>)
- name: newModified
- name: newModified # previously: new_modified
implements: newFunc1(const string&, const shared_ptr<Func1>, double)
- name: newSum
- name: newSum # previously: new_sum
implements: newSumFunction
- name: newDiff
- name: newDiff # previously: new_diff
implements: newDiffFunction
- name: newProd
- name: newProd # previously: new_prod
implements: newProdFunction
- name: newRatio
- name: newRatio # previously: new_ratio
implements: newRatioFunction
- name: type
- name: eval
- name: eval # previously: value
- name: derivative
what: accessor
# - name: duplicate <--- unnecessary: traditional CLib duplicates function
- name: write
- name: del
what: destructor

View File

@ -36,9 +36,9 @@ recipes:
- name: setMultiplier
- name: isReversible
- name: kineticsSpeciesIndex # previously: speciesIndex
implements: Kinetics::kineticsSpeciesIndex(const string&)
implements: kineticsSpeciesIndex(const string&)
- name: advanceCoverages
implements: InterfaceKinetics::advanceCoverages(double)
implements: advanceCoverages(double)
- name: getDeltaEnthalpy # previously: part of getDelta
- name: getDeltaGibbs # previously: part of getDelta
- name: getDeltaEntropy # previously: part of getDelta

View File

@ -11,14 +11,14 @@ derived: [] # List of specializations
recipes:
- name: new
- name: addPhase
implements: MultiPhase::addPhase(shared_ptr<ThermoPhase>, double)
implements: addPhase(shared_ptr<ThermoPhase>, double)
- name: init
- name: updatePhases
- name: nElements
- name: elementIndex
- name: nSpecies
- name: speciesIndex
implements: MultiPhase::speciesIndex(size_t, size_t)
implements: speciesIndex(size_t, size_t)
- name: temperature
- name: setTemperature
- name: minTemp
@ -33,11 +33,11 @@ recipes:
- name: setPhaseMoles
- name: setMoles
- name: setMolesByName
implements: MultiPhase::setMolesByName(const string&)
implements: setMolesByName(const string&)
- name: speciesMoles
- name: elementMoles
- name: equilibrate
implements: MultiPhase::equilibrate(int, const char*, double, int, int, int)
implements: equilibrate(int, const char*, double, int, int, int)
- name: getChemPotentials
- name: enthalpy
- name: entropy

View File

@ -12,6 +12,9 @@ recipes:
- name: new
- name: equation # previously: ctkin_getReactionString
- name: type # previously: ctkin_getReactionType
- name: usesThirdBody
- name: valid
# - name: id <--- member variable (access not yet implemented)
- name: del
- name: cabinetSize
- name: parentHandle

View File

@ -29,7 +29,7 @@ recipes:
what: accessor
- name: nAdjacent
- name: adjacent
implements: Solution::adjacent(size_t)
implements: adjacent(size_t)
uses: [nAdjacent, thermo, kinetics, transport]
what: accessor
- name: adjacentName

View File

@ -14,7 +14,7 @@ recipes:
- name: name # previously: getName
- name: setName
- name: getEosType
implements: Phase::type
implements: type
- name: nElements
- name: nSpecies
- name: temperature
@ -26,9 +26,9 @@ recipes:
- name: molarDensity
- name: meanMolecularWeight
- name: moleFraction
implements: Phase::moleFraction(size_t)
implements: moleFraction(size_t)
- name: massFraction
implements: Phase::massFraction(size_t)
implements: massFraction(size_t)
- name: getMoleFractions
uses: nSpecies
- name: getMassFractions
@ -38,20 +38,19 @@ recipes:
- name: setMassFractions
uses: nSpecies
- name: setMoleFractionsByName
implements: Phase::setMoleFractionsByName(const string&)
implements: setMoleFractionsByName(const string&)
- name: setMassFractionsByName
implements: Phase::setMassFractionsByName(const string&)
- name: getAtomicWeights
implements: Phase::atomicWeights
implements: setMassFractionsByName(const string&)
- name: atomicWeights # previously: getAtomicWeights
uses: nElements
- name: getMolecularWeights
uses: nSpecies
- name: getCharges
uses: nElements
- name: getElementName
implements: Phase::elementName(int)
- name: getSpeciesName
implements: Phase::speciesName(int)
- name: elementName # previously: getElementName
implements: elementName(int)
- name: speciesName # previously: getSpeciesName
implements: speciesName(int)
- name: elementIndex
- name: speciesIndex
- name: nAtoms
@ -72,9 +71,9 @@ recipes:
- name: cv_mole
- name: cv_mass
- name: chemPotentials
implements: ThermoPhase::getChemPotentials
implements: getChemPotentials
- name: electroChemPotentials
implements: ThermoPhase::getElectrochemPotentials
implements: getElectrochemPotentials
- name: electricPotential
- name: setElectricPotential
- name: thermalExpansionCoeff
@ -85,37 +84,37 @@ recipes:
- name: getPartialMolarCp
- name: getPartialMolarVolumes
- name: setState_TPX # new
implements: ThermoPhase::setState_TPX(double, double, const double*)
implements: setState_TPX(double, double, const double*)
- name: setState_TPY # new
implements: ThermoPhase::setState_TPY(double, double, const double*)
implements: setState_TPY(double, double, const double*)
- name: setState_TP # previously: set_TP
implements: ThermoPhase::setState_TP(double, double)
implements: setState_TP(double, double)
- name: setState_TD # previously: set_TD
implements: Phase::setState_TD(double, double)
implements: setState_TD(double, double)
- name: setState_DP # previously: set_DP
implements: ThermoPhase::setState_DP(double, double)
implements: setState_DP(double, double)
- name: setState_HP # previously: set_HP
implements: ThermoPhase::setState_HP(double, double)
implements: setState_HP(double, double)
- name: setState_UV # previously: set_UV
implements: ThermoPhase::setState_UV(double, double)
implements: setState_UV(double, double)
- name: setState_SV # previously: set_SV
implements: ThermoPhase::setState_SV(double, double)
implements: setState_SV(double, double)
- name: setState_SP # previously: set_SP
implements: ThermoPhase::setState_SP(double, double)
implements: setState_SP(double, double)
- name: setState_ST # previously: set_ST
implements: ThermoPhase::setState_ST(double, double)
implements: setState_ST(double, double)
- name: setState_TV # previously: set_TV
implements: ThermoPhase::setState_TV(double, double)
implements: setState_TV(double, double)
- name: setState_PV # previously: set_PV
implements: ThermoPhase::setState_PV(double, double)
implements: setState_PV(double, double)
- name: setState_UP # previously: set_UP
implements: ThermoPhase::setState_UP(double, double)
implements: setState_UP(double, double)
- name: setState_VH # previously: set_VH
implements: ThermoPhase::setState_VH(double, double)
implements: setState_VH(double, double)
- name: setState_TH # previously: set_TH
implements: ThermoPhase::setState_TH(double, double)
implements: setState_TH(double, double)
- name: setState_SH # previously: set_SH
implements: ThermoPhase::setState_SH(double, double)
implements: setState_SH(double, double)
- name: equilibrate
implements:
ThermoPhase::equilibrate(const string&, const string&, double, int, int, int)
@ -134,7 +133,7 @@ recipes:
- name: siteDensity # previously: used 'surf' prefix'
- name: setSiteDensity # previously: used 'surf' prefix'
- name: setCoveragesByName # previously: used 'surf' prefix'
implements: SurfPhase::setCoveragesByName(const string&)
implements: setCoveragesByName(const string&)
- name: del
what: noop
brief: Destructor; required by some APIs although object is managed by Solution.

View File

@ -425,6 +425,10 @@ class CLibSourceGenerator(SourceGenerator):
if recipe.implements:
msg = f" generating {func_name!r} -> {recipe.implements}"
_LOGGER.debug(msg)
parts = list(recipe.implements.partition("("))
if not self._doxygen_tags.exists(parts[0]):
parts[0] = self._doxygen_tags.detect(parts[0], bases, False)
recipe.implements = "".join(parts)
cxx_func = self._doxygen_tags.cxx_func(recipe.implements)
# Convert C++ return type to format suitable for crosswalk: