|
From: <bma...@us...> - 2003-02-18 16:48:48
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde
In directory sc8-pr-cvs1:/tmp/cvs-serv20102
Modified Files:
RefondeRefonde.java
Log Message:
Couplage à Refonde V2.2
- Introduction du déferlement dissipatif pour houle aléatoire.
- Introduction des domaines poreux et du bloc PORO correspondant.
- Suppression des blocs COND et SOLC.
Index: RefondeRefonde.java
===================================================================
RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/refonde/RefondeRefonde.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** RefondeRefonde.java 30 Jan 2003 13:09:46 -0000 1.1
--- RefondeRefonde.java 18 Feb 2003 16:48:41 -0000 1.2
***************
*** 15,20 ****
import org.fudaa.dodico.objet.*;
import org.fudaa.dodico.corba.objet.*;
! import JSci.maths.DoubleMath;
import org.fudaa.ebli.geometrie.*;
/**
--- 15,22 ----
import org.fudaa.dodico.objet.*;
import org.fudaa.dodico.corba.objet.*;
! //import JSci.maths.DoubleMath;
import org.fudaa.ebli.geometrie.*;
+ import org.fudaa.ebli.geometrie.*;
+ import org.fudaa.fudaa.commun.*;
/**
***************
*** 125,128 ****
--- 127,131 ----
RefondeModeleCalcul mdlCal;
RefondeGeometrie geo;
+ RefondeDomainePoreux[] dmps;
Hashtable hconns=new Hashtable(); // Table des connectivités
***************
*** 131,135 ****
Vector vgpes =new Vector(); // Table des groupes
int numEle;
! boolean bspel; // Présence de super élément
//--------------------------------------------------------------------------
--- 134,138 ----
Vector vgpes =new Vector(); // Table des groupes
int numEle;
! boolean bspel; // Présence de super élément (formulations analytiques)
//--------------------------------------------------------------------------
***************
*** 177,180 ****
--- 180,197 ----
"Remaillez avec un raffinement moindre ou modifiez Refonde.");
+ // Contrôle que les points de plan des domaines poreux sont correctement
+ // renseignés en Z si prise en compte de la porosité
+ if (mdlCal.isFondsPoreux()) {
+ dmps=mdlPrp.getDomainesPoreux();
+ for (int i=0; i<dmps.length; i++) {
+ GrPoint[] ptsPlan=dmps[i].getPointsPlan();
+ for (int j=0; j<ptsPlan.length; j++) {
+ if (dmps[i].isZAutomatique(j) && !geo.contient(ptsPlan[j]))
+ throw new IllegalArgumentException(
+ "Un point du plan d'un domaine poreux est\n"+
+ "hors géométrie et non renseigné en z.");
+ }
+ }
+ }
//--------------------------------------------------------------------------
***************
*** 410,414 ****
// Types
! Integer type=new Integer(1);
for (int j=0; j<els.length; j++) {
int num=((RefondeElementData)els[j].data()).numero;
--- 427,431 ----
// Types
! Integer type=new Integer(mdlCal.isFondsPoreux() ? 21:1);
for (int j=0; j<els.length; j++) {
int num=((RefondeElementData)els[j].data()).numero;
***************
*** 684,689 ****
// Recherche d'un groupe de propriétés équivalent
! // Cas d'une frontière ouverte en super élément
! if (type>4) {
bspel=true;
spGpe=gpe;
--- 701,706 ----
// Recherche d'un groupe de propriétés équivalent
! // Cas d'une frontière ouverte en super élément (formulations analytiques)
! if (type==14 || type==24) {
bspel=true;
spGpe=gpe;
***************
*** 848,852 ****
_params.nbGroupesPE =vgpes.size();
_params.ordreMax =mdlCal.ordreMax();
! _params.casBordOuvert=(mdlCal.casBordOuvert()==0 ? 1 : 2);
_params.connectivites=new SParametresRefondeConnectivite[hconns.size()];
--- 865,869 ----
_params.nbGroupesPE =vgpes.size();
_params.ordreMax =mdlCal.ordreMax();
! _params.casBordOuvert=(bspel ? 2:1);
_params.connectivites=new SParametresRefondeConnectivite[hconns.size()];
***************
*** 883,887 ****
//--- Bloc 'SOLC' --------------------------------------------------------
//--------------------------------------------------------------------------
! {
// Calcul itératif de la longueur d'onde
double onde1=0;
--- 900,906 ----
//--- Bloc 'SOLC' --------------------------------------------------------
//--------------------------------------------------------------------------
!
! // Bloc supprimé du fichier .inp le 04/02/03
! /* {
// Calcul itératif de la longueur d'onde
double onde1=0;
***************
*** 907,913 ****
}
_params.longueurOnde=onde1;
! // _params.angleHoule =mdlCal.angleHoule();
! _params.hauteurHoule=mdlCal.hauteurHoule();
}
--- 926,1013 ----
}
_params.longueurOnde=onde1;
+ } */
! //--------------------------------------------------------------------------
! //--- Bloc 'PORO' --------------------------------------------------------
! //--------------------------------------------------------------------------
! {
! _params.fondsPoreux=mdlCal.isFondsPoreux();
!
! if (mdlCal.isFondsPoreux()) {
! dmps=mdlPrp.getDomainesPoreux();
!
! // Interpolation pour les points du plan des domaines
!
! FudaaInterpolateurMaillage it=null;
! for (int i=0; i<dmps.length; i++) {
!
! // Calcul des z des points de définition des domaines poreux à
! // z automatique
! GrPoint[] ptsPlan=dmps[i].getPointsPlan();
! for (int j=0; j<ptsPlan.length; j++) {
! if (dmps[i].isZAutomatique(j)) {
! if (it==null) it=new FudaaInterpolateurMaillage(mai); // Initialisé uniquement si nécessaire
! ptsPlan[j]=it.interpolePoint(ptsPlan[j]);
! }
! }
! dmps[i].setPointsPlan(ptsPlan); // Réinitialisation du plan avec Z correct.
! }
!
! // Recherche des noeuds concernés
!
! GrNoeud[] nds=mai.noeuds();
! Vector[] vnoeuds=new Vector[dmps.length];
! Vector[] vepaisseurs=new Vector[dmps.length];
! int nbPoreux=0;
!
! // Pour chaque noeud
! for (int i=0; i<nds.length; i++) {
! // Pour chaque domaine
! for (int j=0; j<dmps.length; j++) {
!
! // Le noeud est dans les limites du domaine
! if (dmps[j].contientXY(nds[i].point)) {
! double zplan=dmps[j].calculeZ(nds[i].point);
! double epaisseur=zplan-nds[i].point.z;
! // Ajout du noeud pour ce domaine
! if (epaisseur>0) {
! if (vnoeuds[j]==null) {
! nbPoreux++;
! vnoeuds[j]=new Vector();
! vepaisseurs[j]=new Vector();
! }
! vnoeuds[j].add(nds[i]);
! vepaisseurs[j].add(new Double(epaisseur));
! }
! break;
! }
! }
! }
!
! // Transfert des informations
! SParametresRefondeDomainePoreux[] rdmps=
! new SParametresRefondeDomainePoreux[nbPoreux];
!
! nbPoreux=0;
! for (int i=0; i<dmps.length; i++) {
! if (vnoeuds[i]==null) continue;
!
! int[] numNds=new int[vnoeuds[i].size()];
! for (int j=0; j<numNds.length; j++) numNds[j]=
! ((RefondeNoeudData)((GrNoeud)vnoeuds[i].get(j)).data()).numero;
!
! double[] epaisseurs=new double[vepaisseurs[i].size()];
! for (int j=0; j<epaisseurs.length; j++)
! epaisseurs[j]=((Double)vepaisseurs[i].get(j)).doubleValue();
!
! rdmps[nbPoreux]=new SParametresRefondeDomainePoreux(
! dmps[i].porosite_,dmps[i].coefFrottement_,dmps[i].permeabilite_,
! dmps[i].coefMasse_,numNds,epaisseurs);
!
! nbPoreux++;
! }
!
! _params.domainePoreux=rdmps;
! }
}
***************
*** 916,923 ****
//--------------------------------------------------------------------------
{
- // _params.periodeHoule =mdlCal.periodeHoule();
_params.penteFonds =1;
_params.profondeurOrigine=0; // Inutile si pente fond=1
_params.hauteurMer =mdlCal.hauteurMer();
}
--- 1016,1023 ----
//--------------------------------------------------------------------------
{
_params.penteFonds =1;
_params.profondeurOrigine=0; // Inutile si pente fond=1
_params.hauteurMer =mdlCal.hauteurMer();
+ _params.hauteurHoule =mdlCal.hauteurHoule();
}
|