//========================================================================== // Class Definition //========================================================================== // AssembleCourantReynoldsElemAlgorithm - Courant number calc for both edge // and elem //========================================================================== //-------------------------------------------------------------------------- //-------- constructor ----------------------------------------------------- //-------------------------------------------------------------------------- AssembleCourantReynoldsElemAlgorithm::AssembleCourantReynoldsElemAlgorithm( Realm &realm, stk::mesh::Part *part) : Algorithm(realm, part), meshMotion_(realm_.does_mesh_move()), velocityRTM_(NULL), coordinates_(NULL), density_(NULL), viscosity_(NULL), elemReynolds_(NULL), elemCourant_(NULL) { // save off data stk::mesh::MetaData & meta_data = realm_.meta_data(); if ( meshMotion_ ) velocityRTM_ = meta_data.get_field<VectorFieldType>(stk::topology::NODE_RANK, "velocity_rtm"); else velocityRTM_ = meta_data.get_field<VectorFieldType>(stk::topology::NODE_RANK, "velocity"); coordinates_ = meta_data.get_field<VectorFieldType>(stk::topology::NODE_RANK, realm_.get_coordinates_name()); density_ = meta_data.get_field<ScalarFieldType>(stk::topology::NODE_RANK, "density"); const std::string viscName = (realm.is_turbulent()) ? "effective_viscosity_u" : "viscosity"; viscosity_ = meta_data.get_field<ScalarFieldType>(stk::topology::NODE_RANK, viscName); // provide for elemental fields elemReynolds_ = meta_data.get_field<GenericFieldType>(stk::topology::ELEMENT_RANK, "element_reynolds"); elemCourant_ = meta_data.get_field<GenericFieldType>(stk::topology::ELEMENT_RANK, "element_courant"); }
//========================================================================== // Class Definition //========================================================================== // AssembleMomentumElemSymmetrySolverAlgorithm - lhs for momentum symm bc //========================================================================== //-------------------------------------------------------------------------- //-------- constructor ----------------------------------------------------- //-------------------------------------------------------------------------- AssembleMomentumElemSymmetrySolverAlgorithm::AssembleMomentumElemSymmetrySolverAlgorithm( Realm &realm, stk::mesh::Part *part, EquationSystem *eqSystem) : SolverAlgorithm(realm, part, eqSystem), includeDivU_(realm_.get_divU()) { // save off fields stk::mesh::MetaData & meta_data = realm_.meta_data(); velocity_ = meta_data.get_field<VectorFieldType>(stk::topology::NODE_RANK, "velocity"); coordinates_ = meta_data.get_field<VectorFieldType>(stk::topology::NODE_RANK, realm_.get_coordinates_name()); const std::string viscName = realm.is_turbulent() ? "effective_viscosity_u" : "viscosity"; viscosity_ = meta_data.get_field<ScalarFieldType>(stk::topology::NODE_RANK, viscName); exposedAreaVec_ = meta_data.get_field<GenericFieldType>(meta_data.side_rank(), "exposed_area_vector"); }