| Add a component of the field |
| |
| - ``comp_name``: name of a component to take into account |
+| |
+| Note: if this method is not used, every component |
+| of the field is taken into account. |
+---------------------------------------------------------------+
| .. module:: SetUseComp |
| |
| |
| - ``comp_name`` : nom d'une composante à prendre en |
| compte |
+| |
+| Remarque : si cette méthode n'est pas appelée, par défaut |
+| toutes les composantes seront retenues. |
+---------------------------------------------------------------+
| .. module:: SetUseComp |
| |
FileName = dico_resu["FileName"]
Iter.SetFieldFile(FileName)
#
+HOMARD_Exec_Iter_Options
+#
# Calculation
# ===========
Error = Iter.Compute(1,1)
FileName = dico_resu["FileName"]
Iter.SetFieldFile(FileName)
#
+HOMARD_Exec_Iter_Options
+#
# Calcul
# ======
Error = Iter.Compute(1,1)
_Texte += "DirName = \"" + _DirName + "/HOMARD\"\n" ;
_Texte += "Case.SetDirName(DirName)\n" ;
- Texte_python( pythonTexte, 1, "Case" ) ;
+ Texte_python_1( pythonTexte, 1, "Case" ) ;
//
}
//===============================================================================
//
}
//===============================================================================
-// Manipulation des instructions python
+// Manipulation des instructions python - 1
// pythonTexte : le texte des instructions python a manipuler
// indice : numero de la premiere ligne voulue
// concept : nom du concept a inserer
//===============================================================================
-void YACSDriver::Texte_python( const std::string pythonTexte, int indice, const std::string concept )
+void YACSDriver::Texte_python_1( const std::string pythonTexte, int indice, const std::string concept )
{
- MESSAGE("Texte_python, pythonTexte\n"<<pythonTexte);
+ MESSAGE("Texte_python_1, pythonTexte\n"<<pythonTexte);
MESSAGE("indice = "<<indice<<", concept = "<<concept);
//
// Conversion de type
//
}
//===============================================================================
+// Manipulation des instructions python - 2
+// pythonTexte : le texte des instructions python a manipuler
+// mot_cle : mot-cle dans les lignes a inserer
+// concept : nom du concept a inserer
+//===============================================================================
+void YACSDriver::Texte_python_2( const std::string pythonTexte, const std::string mot_cle, const std::string concept )
+{
+ MESSAGE("Texte_python_2, pythonTexte\n"<<pythonTexte);
+ MESSAGE("mot_cle = "<<mot_cle<<", concept = "<<concept);
+//
+// Conversion de type
+ std::istringstream tout (pythonTexte) ;
+// MESSAGE("\ntout :"<<tout);
+ std::string ligne; // variable contenant chaque ligne de python
+ std::string ligne_bis ; // variable contenant la portion de ligne de python apres '.'
+ while ( std::getline( tout, ligne ) )
+ {
+ int reperage = ligne.find( mot_cle ) ;
+ if ( reperage > 0 )
+ {
+ int position = ligne.find_first_of( "." ) ;
+// MESSAGE("\nposition : "<< position);
+ if ( position > 0 )
+ {
+ ligne_bis = ligne.substr( position );
+// MESSAGE("\nligne_bis : "<< ligne_bis);
+ _Texte += concept + ligne_bis + "\n" ;
+ }
+ }
+ }
+//
+}
+//===============================================================================
// Creation d'un parametre
//===============================================================================
void YACSDriver::TexteParametre( const std::string node, const std::string port, const std::string type_value, const std::string value )
std::string Texte_inport( const std::string inport_type, const std::string inport_nom ) ;
void Texte_HOMARD_Exec_DirName( ) ;
void Texte_HOMARD_Exec_MeshName( const std::string MeshName ) ;
- void Texte_python( const std::string pythonTexte, int indice, const std::string concept ) ;
+ void Texte_python_1( const std::string pythonTexte, int indice, const std::string concept ) ;
+ void Texte_python_2( const std::string pythonTexte, const std::string mot_cle, const std::string concept ) ;
void TexteParametre( const std::string node, const std::string port, const std::string type_value, const std::string value ) ;
void TexteAddParametres( ) ;
void CreeFichier() ;
std::string Iter1Name = std::string((*maListe)[0]);
MESSAGE ("... Iter1Name = " << Iter1Name);
HOMARD::HOMARD_Iteration_var Iter1 = GetIteration(Iter1Name.c_str()) ;
+ // D.3. Les instructions python associees a l'iteration
+ CORBA::String_var dumpCorbaIter = Iter1->GetDumpPython();
+ std::string pythonIter = dumpCorbaIter.in();
+ MESSAGE ("pythonIter :\n"<<pythonIter<<"\n");
// E. L'hypothese pour passer de l'iteration initiale a la suivante
// E.1. La structure
}
// G.1.7. Execution de HOMARD : les options de l'hypothese
else if ( mot_cle == "HOMARD_Exec_Hypo_Options" )
- { myDriver->Texte_python( pythonHypo, 3, "Hypo" ) ; }
- // G.1.8. Zones et frontieres : les creations
+ { myDriver->Texte_python_1( pythonHypo, 3, "Hypo" ) ; }
+ // G.1.8. Execution de HOMARD : les options de l'iteration
+ else if ( mot_cle == "HOMARD_Exec_Iter_Options" )
+ { myDriver->Texte_python_2( pythonIter, "TimeStep", "Iter" ) ; }
+ // G.1.9. Zones et frontieres : les creations
else if ( mot_cle == "Iter_1" )
{
std::string texte_control = myDriver->Texte_Iter_1_control() ;
texte_control += YACSDriverTexteBoundary( myCase, myDriver ) ;
myDriver->TexteAdd(texte_control);
}
- // G.1.9. Les parametres
+ // G.1.10. Les parametres
else if ( mot_cle == "PARAMETRES" )
{ myDriver->TexteAddParametres(); }
// G.1.n. La ligne est recopiee telle quelle