/**
* EBEs.java
*
@author Gustavo R. Zavala <grzavala@gmail.com>
* Antonio J. Nebro <antonio@lcc.uma.es>
* Juan J. Durillo <durillo@lcc.uma.es>
* @version 1.0
*/
package jmetal.problems;
import jmetal.core.Problem;
import jmetal.core.Solution;
import jmetal.core.Variable;
import jmetal.encodings.solutionType.ArrayRealSolutionType;
import jmetal.encodings.solutionType.BinaryRealSolutionType;
import jmetal.encodings.solutionType.RealSolutionType;
import jmetal.util.JMException;
import java.io.PrintStream;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Class representing problem EBEs
* Spatial Bars Structure (Estructuras de Barras Espaciales)
*/
public class EBEs extends Problem{
/**
* Constructor.
* Creates a default instance of the EBEs problem.
* @param solutionType The solution type must "Real" or "BinaryReal".
*/
/**
* Stores the number of Bar Groups
*/
protected int numberOfEval_ ;
/*
protected int maxEvaluations_ ;
public void setMaxEvaluations(int maxEvaluations) {
maxEvaluations_ = maxEvaluations;
} // setNumberOfElement
public int getMaxEvaluations() {
return maxEvaluations_;
} // setNumberOfElement
*/
/*
* Stores the number of Nodes of the problem
*/
protected int numberOfNodes_ ;
public void setNumberOfNodes(int numberOfNodes) {
numberOfNodes_ = numberOfNodes;
} // setNumberOfNodes
public int getNumberOfNodes() {
return numberOfNodes_ ;
} // getNumberOfNodes
/**
* Stores the number of Nodes of the problem
*/
protected int numberOfLibertyDegree_=6 ;
protected int numberOfNodesRestricts_ ;
public void numberOfNodesRestricts(int numberOfNodesRestricts) {
numberOfNodesRestricts_ = numberOfNodesRestricts;
} // set numberOfNodesRestricts
public int getNumberOfNodesRestricts() {
return numberOfNodesRestricts_ ;
} // get NumberOfNodes
/**
* Stores the number of Nodes of the problem
*/
protected double [][] nodeCheck_ ;
public double nodeCheck(int i, int j) {
return nodeCheck_[i][j];
} // get node check
/**
* Stores the number of Bar Groups
*/
protected int numberOfGroupElements_ ;
public void setnumberOfGroupElements(int i) {
numberOfGroupElements_ = i;
} // setNumberOfElement
public int getnumberOfGroupElements() {
return numberOfGroupElements_;
} // getNumberOfElements
/**
* Stores the number of Bar of the problem
*/
protected int numberOfElements_ ;
public void setNumberOfElements(int numberOfElements) {
numberOfElements_ = numberOfElements;
} // setNumberOfElement
public int getNumberOfElements() {
return numberOfElements_;
} // getNumberOfElements
public boolean lLoadsOwnWeight;
public boolean lSecondOrderGeometric;
public boolean lBuckling;
/**
* Stores the Elements Between Difference Greatest
*/
protected int elementsBetweenDiffGreat_;
public void setElementsBetweenDiffGreat(int elementsBetweenDiffGreat) {
elementsBetweenDiffGreat_ = elementsBetweenDiffGreat;
} // setNumberOfElement
public int getElementsBetweenDiffGreat() {
return elementsBetweenDiffGreat_;
} // getNumberOfElements
/**
* Stores the number of Load in Nodes of the problem
*/
protected int numberOfWeigthsNodes_ ;
public void setNumberOfWeigthsNodes(int numberOfWeigthsNodes) {
numberOfWeigthsNodes_ = numberOfWeigthsNodes;
} // setNumberOfWeigths
public int getNumberOfWeigthsNodes() {
return numberOfWeigthsNodes_;
} // getNumberOfWeigths
/**
* Stores the number of Load in ElementsNodes of the problem
*/
protected int numberOfWeigthsElements_ ;
public void setNumberOfWeigthsElements(int numberOfWeigthsElements) {
numberOfWeigthsElements_ = numberOfWeigthsElements;
} // setNumberOfWeigths
public int getNumberOfWeigthsElements() {
return numberOfWeigthsElements_;
} // getNumberOfWeigths
/**
* Stores the number a wide the diagonal matrix
*/
protected int matrixWidthBand_ ;
public void setMatrixWidthBand(int matrixWidthBand) {
matrixWidthBand_ = matrixWidthBand;
} // setMatrixWidtBand
public int getMatrixWidthBand() {
return matrixWidthBand_;
} // getMatrixWidtBand
protected int numberOfWeigthHypothesis_ ;
public void setNumberOfWeigthHypothesis(int numberOfWeigthHypothesis) {
numberOfWeigthHypothesis_ = numberOfWeigthHypothesis;
} // set numberOfLibertyDegree
public int getNumberOfWeigthHypothesis() {
return numberOfWeigthHypothesis_ ;
} // get numberOfLibertyDegree
protected int numberOfConstraintsNodes_ ;
public void setNumberOfConstraintsNodes(int numberOfConstraintsNodes) {
numberOfConstraintsNodes_ = numberOfConstraintsNodes;
} // set numberOfConstraintsNodes
public int getNumberOfConstraintsNodes() {
return numberOfWeigthHypothesis_ ;
} // get numberOfRestrictionNodes
/**
* Stores the Node
*/
protected double [][] Node_ ;
public double getNode(int i, int j) {
return Node_[i][j] ;
} // getNodes
/**
* Stores the NodeRestrict
*/
protected double [][] NodeRestrict_ ;
public double getNodeRestrict(int i, int j) {
return NodeRestrict_[i][j] ;
} // getNodes
/**
* Stores the Groups
*/
protected double [][] Groups_ ;
public double getGroups(int i) {
return Groups_[i][43] ;
} // getGroups
/**
* Stores the Element
*/
protected double [][] Element_ ;
public double getElement(int i, int j) {
return Element_[i][j] ;
} // getElement
/**
* Stores the Load on Nodes
*/
protected double [][] WeightNode_ ;
public double getWeightNode(int i, int j) {
return WeightNode_[i][j] ;
} // getWeight
/**
* Stores the OverLoad on Elements
*/
protected double [][] OverloadInElement_ ;
public double getWeightElement(int i, int j) {
return OverloadInElement_[i][j] ;
} // getWeight
/**
* Stores the Load on Elements Itself
*/
protected double [][] WeightElement_ ;
public double getWeightElementItself(int i, int j) {
return WeightElement_[i][j];
} // getWeight
/**
* Stores the k
*/
protected double [] MatrixStiffness_ ;
public double MatrixStiffness(int i) {
return MatrixStiffness_[i];
} // get Strain i
/**
* Stores the k displacement
*/
protected double [][] DisplacementNodes_ ;
public double DisplacementNodes(int node, int hi) {
return DisplacementNodes_[node][hi];
} // get DisplacementNodes i
/**
* Stores the Effort in node i
*/
protected double [][][] Efforti_ ;
public double Efforti(int i, int element, int hypothesis) {
return Efforti_[i][element][hypothesis];
} // get Effort i
/**
* Stores the Effort in node j
*/
protected double [][][] Effortj_ ;
public double Effortj(int i, int element, int hypothesis) {
return Effortj_[i][element][hypothesis];
} // get Effort j
/**
* Stores the Axial force in node i
*/
protected double [] AxialForcei_ ;
public double AxialForcei_(int element) {
return AxialForcei_[element];
} // get Axial Force i
/**
* Stores the Axial force in node j
*/
protected double [] AxialForcej_ ;
public double AxialForcej_(int element) {
return AxialForcej_[element];
} // get Axial Force j
protected int strainAdmissibleCut_ ;
public void setStrainAdmissibleCut(int strainAdmissibleCut) {
strainAdmissibleCut_ = strainAdmissibleCut;
} // setStrainAdmissibleCompress
public int getStrainAdmissibleCut() {
return strainAdmissibleCut_ ;
} // getStrainAdmissibleCut
/**