Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

https://github.com/geodynamics/citcoms
26 October 2024, 18:30:49 UTC
  • Code
  • Branches (31)
  • Releases (16)
  • Visits
    • Branches
    • Releases
    • HEAD
    • refs/heads/CitcomS
    • refs/heads/CitcomS-2_x
    • refs/heads/compressible
    • refs/heads/cxx
    • refs/heads/eheien
    • refs/heads/eheien_dev
    • refs/heads/gui-launcher-branch
    • refs/heads/kommu/aspect-citcom-benchmarks
    • refs/heads/master
    • refs/heads/python-removal
    • refs/heads/rajesh-petsc
    • refs/heads/rajesh-petsc-schur
    • refs/heads/rajesh_dev
    • refs/heads/v2
    • refs/heads/v2.2
    • refs/heads/v3.0
    • refs/heads/v3.1
    • refs/remotes/svn/CitcomS
    • refs/remotes/svn/CitcomS-2_x
    • refs/remotes/svn/compressible
    • refs/remotes/svn/cxx
    • refs/remotes/svn/eheien
    • refs/remotes/svn/eheien_dev
    • refs/remotes/svn/gui-launcher-branch
    • refs/remotes/svn/trunk
    • refs/remotes/svn/v2
    • refs/remotes/svn/v2.2
    • refs/remotes/svn/v3.0
    • refs/remotes/svn/v3.1
    • refs/tags/v3.3.0
    • refs/tags/v3.3.1
    • v3.2.0
    • v3.1.2
    • v3.1.1
    • v3.1.0
    • v3.0.2
    • v3.0.1
    • v3.0.0b
    • v3.0.0
    • v2.2.2
    • v2.2.1
    • v2.2.0
    • v2.1.0
    • v2.0.2
    • v2.0.1
    • pre-2.0
    • 3.2.0
  • 9079e0b
  • /
  • CitcomS
  • /
  • CoupledApp.py
Raw File Download
Take a new snapshot of a software origin

If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.

Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.
swh spinner

Processing "take a new snapshot" request ...

Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
  • revision
  • snapshot
  • release
origin badgecontent badge Iframe embedding
swh:1:cnt:7371afaba8494fc73ecc992d69c036ea200b8396
origin badgedirectory badge Iframe embedding
swh:1:dir:89d57d0ff9c0f5813b2a19a72f150fc43e72bd29
origin badgerevision badge
swh:1:rev:21104b65b70185cd07e2762f33edb975a2f110e8
origin badgesnapshot badge
swh:1:snp:6144a327b54924075059de040a51fd832e5692cc
origin badgerelease badge
swh:1:rel:67fa317f0439e35e142a55c0008d03538013c0e2
Citations

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
  • revision
  • snapshot
  • release
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Tip revision: 21104b65b70185cd07e2762f33edb975a2f110e8 authored by Eh Tan on 15 June 2007, 21:01:27 UTC
Tag for v2.2.2 release
Tip revision: 21104b6
CoupledApp.py
#!/usr/bin/env python
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#<LicenseText>
#
# CitcomS.py by Eh Tan, Eun-seo Choi, and Pururav Thoutireddy.
# Copyright (C) 2002-2005, California Institute of Technology.
#
# This program 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 2 of the License, or
# (at your option) any later version.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
#</LicenseText>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#

from BaseApplication import BaseApplication
import journal


class CoupledApp(BaseApplication):


    def __init__(self, name="CitcomS"):
        BaseApplication.__init__(self, name)

        self.solver = None
        self.solverCommunicator = None
        self.myPlus = []
        self.remotePlus = []

        self.comm = None
        self.rank = 0
        self.nodes = 0
        return



    def getNodes(self):
        s1 = self.inventory.solver1.inventory.mesher.inventory
        nproc1 = s1.nproc_surf * s1.nprocx * s1.nprocy * s1.nprocz
        s2 = self.inventory.solver2.inventory.mesher.inventory
        nproc2 = s2.nproc_surf * s2.nprocx * s2.nprocy * s2.nprocz
        return nproc1 + nproc2



    def initialize(self):
        layout = self.inventory.layout
        layout.initialize(self)

        self.findLayout(layout)

        self.controller.initialize(self)

        return



    def findLayout(self, layout):

        if layout.comm1:
            self.controller = self.inventory.controller1
            self.solver = self.inventory.solver1
            self.coupler = self.inventory.coupler1
            self.solverCommunicator = layout.comm1
            self.myPlus = layout.comm1Plus
            self.remotePlus = layout.comm2Plus
        elif layout.comm2:
            self.controller = self.inventory.controller2
            self.solver = self.inventory.solver2
            self.coupler = self.inventory.coupler2
            self.solverCommunicator = layout.comm2
            self.myPlus = layout.comm2Plus
            self.remotePlus = layout.comm1Plus
        else:
            import journal
            journal.warning(self.name).log("node '%d' is an orphan"
                                           % layout.rank)

        self.comm = layout.comm
        self.rank = layout.rank
        self.nodes = layout.nodes

        return



    def reportConfiguration(self):

        rank = self.comm.rank

        if rank != 0:
            return

        self._info.line("configuration:")
#        self._info.line("  properties:")
#        self._info.line("    name: %r" % self.inventory.name)
#        self._info.line("    full name: %r" % self.inventory.fullname)

        self._info.line("  facilities:")
        self._info.line("    launcher: %r" % self.inventory.launcher.name)

        self._info.line("    solver1: %r" % self.inventory.solver1.name)
        self._info.line("    solver2: %r" % self.inventory.solver2.name)
        self._info.line("    controller1: %r" % self.inventory.controller1.name)
        self._info.line("    controller2: %r" % self.inventory.controller2.name)
        self._info.line("    coupler1: %r" % self.inventory.coupler1.name)
        self._info.line("    coupler2: %r" % self.inventory.coupler2.name)
        self._info.line("    layout: %r" % self.inventory.layout.name)

        return



    class Inventory(BaseApplication.Inventory):

        import pyre.inventory

        import Controller
        import Solver
        import Coupler
        import Layout

        controller1 = pyre.inventory.facility(name="controller1",
                                              factory=Controller.controller,
                                              args=("ccontroller","controller1"))
        controller2 = pyre.inventory.facility(name="controller2",
                                              factory=Controller.controller,
                                              args=("econtroller","controller2"))
        coupler1 = pyre.inventory.facility("coupler1",
                                           factory=Coupler.containingcoupler,
                                           args=("ccoupler","coupler1"))
        coupler2 = pyre.inventory.facility("coupler2",
                                           factory=Coupler.embeddedcoupler,
                                           args=("ecoupler","coupler2"))

        solver1 = pyre.inventory.facility("solver1",
                                          factory=Solver.coupledRegionalSolver,
                                          args=("csolver", "solver1"))
        solver2 = pyre.inventory.facility("solver2",
                                       factory=Solver.coupledRegionalSolver,
                                       args=("esolver", "solver2"))

        layout = pyre.inventory.facility("layout", factory=Layout.layout)

        steps = pyre.inventory.int("steps", default=1)




# version
__id__ = "$Id$"

# End of file

back to top

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Contact— JavaScript license information— Web API