URI:
       tIceRegionalModel.hh - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
  HTML git clone git://src.adamsgaard.dk/pism
   DIR Log
   DIR Files
   DIR Refs
   DIR LICENSE
       ---
       tIceRegionalModel.hh (2032B)
       ---
            1 /* Copyright (C) 2015, 2016, 2017, 2018, 2019 PISM Authors
            2  *
            3  * This file is part of PISM.
            4  *
            5  * PISM is free software; you can redistribute it and/or modify it under the
            6  * terms of the GNU General Public License as published by the Free Software
            7  * Foundation; either version 3 of the License, or (at your option) any later
            8  * version.
            9  *
           10  * PISM is distributed in the hope that it will be useful, but WITHOUT ANY
           11  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
           12  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
           13  * details.
           14  *
           15  * You should have received a copy of the GNU General Public License
           16  * along with PISM; if not, write to the Free Software
           17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
           18  */
           19 
           20 #ifndef _ICEREGIONALMODEL_H_
           21 #define _ICEREGIONALMODEL_H_
           22 
           23 #include <memory>               // shared_ptr
           24 
           25 #include "pism/icemodel/IceModel.hh"
           26 
           27 namespace pism {
           28 
           29 namespace energy {
           30 class CHSystem;
           31 } // end of namespace energy
           32 
           33 //! \brief A version of the PISM core class (IceModel) which knows about the
           34 //! `no_model_mask` and its semantics.
           35 class IceRegionalModel : public IceModel {
           36 public:
           37   IceRegionalModel(IceGrid::Ptr g, Context::Ptr c);
           38 
           39   const energy::CHSystem* cryo_hydrologic_system() const;
           40 
           41 protected:
           42   virtual void bootstrap_2d(const File &input_file);
           43 
           44   void allocate_geometry_evolution();
           45   void allocate_storage();
           46   void allocate_stressbalance();
           47   void allocate_basal_yield_stress();
           48   void allocate_energy_model();
           49   void model_state_setup();
           50 
           51   void energy_step();
           52   void hydrology_step();
           53 
           54   stressbalance::Inputs stress_balance_inputs();
           55   energy::Inputs energy_model_inputs();
           56   YieldStressInputs yield_stress_inputs();
           57 
           58   void init_diagnostics();
           59 
           60 private:
           61   IceModelVec2Int m_no_model_mask;
           62   IceModelVec2S   m_usurf_stored;
           63   IceModelVec2S   m_thk_stored;
           64 
           65   std::shared_ptr<energy::CHSystem> m_ch_system;
           66   IceModelVec3::Ptr m_ch_warming_flux;
           67 };
           68 
           69 } // end of namespace pism
           70 
           71 #endif /* _ICEREGIONALMODEL_H_ */