/usr/include/trilinos/LOCA_GlobalData.H is in libtrilinos-dev 10.4.0.dfsg-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | // $Id$
// $Source$
//@HEADER
// ************************************************************************
//
// NOX: An Object-Oriented Nonlinear Solver Package
// Copyright (2002) Sandia Corporation
//
// LOCA: Library of Continuation Algorithms Package
// Copyright (2005) Sandia Corporation
//
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
// license for use of this work by or on behalf of the U.S. Government.
//
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of the
// License, or (at your option) any later version.
//
// This library 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
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
//
// Questions? Contact Roger Pawlowski (rppawlo@sandia.gov) or
// Eric Phipps (etphipp@sandia.gov), Sandia National Laboratories.
// ************************************************************************
// CVS Information
// $Source$
// $Author$
// $Date$
// $Revision$
// ************************************************************************
//@HEADER
#ifndef LOCA_GLOBALDATA_H
#define LOCA_GLOBALDATA_H
#include "Teuchos_RCP.hpp"
// Global data objects forward declarations
namespace Teuchos {
class ParameterList;
}
namespace NOX {
class Utils;
}
namespace LOCA {
class ErrorCheck;
class Factory;
namespace Abstract {
class Factory;
}
namespace Parameter {
class SublistParser;
}
}
namespace LOCA {
//! Container class to hold "global" %LOCA objects
/*!
* %GlobalData is a container class that holds ref-count pointers to
* "global" objects, i.e., objects that nearly every LOCA object will need
* access to. By putting them all in one container class, the container
* class can be stored in each LOCA object, and if a new global object
* is needed, it can be added here without modifying the rest of the
* code. This is an alternative to true global or static objects which are
* note safe in many contexts. In particular, this approach allows multiple
* %LOCA "invocations" to be in memory at the same time. Note that all data
* members are declared public.
*/
class GlobalData {
public:
//! Constructor taking a ref-count pointer to each global object
GlobalData(const Teuchos::RCP<NOX::Utils>& loca_utils,
const Teuchos::RCP<LOCA::ErrorCheck>& loca_error_check,
const Teuchos::RCP<LOCA::Factory>& loca_factory);
//! Destructor
virtual ~GlobalData();
//! Ref-count pointer to NOX::Utils object
Teuchos::RCP<NOX::Utils> locaUtils;
//! Ref-count pointer to LOCA::ErrorCheck object
Teuchos::RCP<LOCA::ErrorCheck> locaErrorCheck;
//! Ref-count pointer to LOCA::Factory object
Teuchos::RCP<LOCA::Factory> locaFactory;
//! Ref-count pointer to parsed parameter list
Teuchos::RCP<LOCA::Parameter::SublistParser> parsedParams;
private:
//! Copy constructor is private to preclude copying
GlobalData(const GlobalData&);
//! Assignment operator is private to preclude copying
GlobalData& operator = (const GlobalData&);
}; // Class GlobalData
//! Creates and initializes a LOCA::GlobalData object
Teuchos::RCP<LOCA::GlobalData>
createGlobalData(const Teuchos::RCP<Teuchos::ParameterList>& paramList,
const Teuchos::RCP<LOCA::Abstract::Factory>& userFactory = Teuchos::null);
//! De-initializes a LOCA::GlobalData object for destruction
/*!
* Sets the data members to Teuchos::null to remove circular references
*/
void
destroyGlobalData(const Teuchos::RCP<LOCA::GlobalData>& globalData);
} // Namespace LOCA
#endif
|