/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Copyright (C) 2021-2023 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . \*---------------------------------------------------------------------------*/ #include "phaseInterface.H" #include "sidedPhaseInterface.H" #include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { defineTypeNameAndDebugWithName ( sidedPhaseInterface, separatorsToTypeName ({ phaseInterface::separator(), separator() }).c_str(), 0 ); addToRunTimeSelectionTable(phaseInterface, sidedPhaseInterface, word); } // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::sidedPhaseInterface::sidedPhaseInterface ( const phaseModel& phase, const phaseModel& otherPhase ) : phaseInterface(phase, otherPhase), phase_(phase) {} Foam::sidedPhaseInterface::sidedPhaseInterface ( const phaseSystem& fluid, const word& name ) : phaseInterface(fluid, name), phase_(identifyPhases(fluid, name, {separator()}).second()) { if (!contains(phase_)) { FatalErrorInFunction << "Interface " << name << " is not valid. An interface cannot " << "have a side that is not one of its own phases." << exit(FatalError); } } // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::sidedPhaseInterface::~sidedPhaseInterface() {} // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // Foam::word Foam::sidedPhaseInterface::name() const { return phaseInterface::name() + '_' + separator() + '_' + phase().name(); } const Foam::phaseModel& Foam::sidedPhaseInterface::phase() const { return phase_; } const Foam::phaseModel& Foam::sidedPhaseInterface::otherPhase() const { return phaseInterface::otherPhase(phase_); } Foam::autoPtr Foam::sidedPhaseInterface::otherInterface() const { wordList nameParts = phaseInterface::nameToNameParts(fluid(), name()); const label i = findIndex(nameParts, sidedPhaseInterface::separator()); nameParts[i+1] = otherPhase().name(); return phaseInterface::New ( fluid(), phaseInterface::namePartsToName(fluid(), nameParts) ); } // ************************************************************************* //