
Sridhar Srinivasan
CLI International, Inc.
Houston, Texas USA
email ss@clihouston.com
ABSTRACT
A generic computer-based framework to support characterization of materials and corrosion problems called Genera has been developed. The framework provides an object-based model to partition and represent domain knowledge in terms of domain objects. The model allows characterization of objects in terms of system parameters and their relationships as a means to capturing the state of an object enroute to creation of a template of objects and parameters. The framework facilitates characterization of the state of a system/template in terms of system parameters and inter-related objects. This paper presents three case studies - coating evaluation, Hydrogen Embrittlement Cracking and Galvanic corrosion - to examine the efficacy of the generic computer template as a problem-solving tool.
Generic methods to represent and solve problems have always been an area of active effort, given the inherent increase in efficiency. However, hitherto, such efforts have been difficult to implement given the paucity of adequate computing representation resources. Now, the advent and development of object oreinted technology has led to availability of tools that can naturally take advantage of commonalities between different problem-solving systems.
Evaluation and characterization of materials and corrosive environments is an essential aspect of understanding corrosion and designing materials for safe utilization in corrosive environments. Problem-solving related to material selection and corrosion/cracking characterization are complex since they require modeling the role of a large number of metallurgical and environmental parameters as well as synthesizing the effects of different parameters and parameter interactions. Software systems developed over the last ten years have attempted to capture and solve problems in materials selection and corrosion characterization as an efficient way of integrating different types of data in materials and corrosion problem-solving as well as in incorporating different types of parametric effects and interactions1,2. Several expert systems and smart programs3-6 have been developed to address different aspects of corrosion and cracking characterization as well as selection of different kinds of materials used in corrosive service. These systems typically involve using different types of data to support the decision-making built into the computer programs:
Over the last eight years, the author has been involved in developing software systems that integrate analytical (numerical/mathematical relationships) models with heuristic (rules of thumb from experience) decision systems in an effort to capture the problem-solving methodology in specific domains, viz., selection of materials for sour service, evaluation of steels in refineries and pipelines, selection of corrosion resistant alloys for oil and gas production service etc7-8. In all these efforts, the process of system development involved the following sequential steps:
While the above steps can be followed in developing software systems to solve domain-specific problems in materials and corrosion, significant time, effort and resources are needed to develop realistic software solutions to these problems. Even though the steps specified are generic to any corrosion and materials problem, in the past, it was necessary to develop each domain system as an independent entity in that there was little or no data sharing between different systems. However, it is obvious that if one could develop a framework that can capture data and information common to a class of problems, use of such a framework can significantly reduce the development time for the class of problems. A domain-independent approach to solving materials and corrosion problems, if feasible, is a step in the right direction in making such system development more efficient and less expensive. More importantly, such an approach would provide the power of system development to engineers and scientists with the data and decision-making knowledge, so long as they can structure their domain information in terms of knowledge structures consistent with the requirements of the framework.
A domain-independent, generic problem-solving framework called Genera has been developed and forms the focus of this paper. The framework has been implemented as a PC-based graphical tool that facilitates creation of software systems to characterize materials and corrosion problems. The rest of the paper is organized as follows: Introduction to object-based systems and terminology relevant to object-oriented programming is explained in the next section. This is followed by a description of the generic system implementation framework. Case studies of programs developed using the framework are given and are followed by a discussion on the merits and demerits of using a generic framework.
Domain-independent approaches to problem-solving and development of domain-independent software systems has been attempted in areas such as mechanical design and applications of Artificial Intelligence concepts to mechanical design 9-12. Most of these efforts have their roots in development of object-based systems and the incorporation of object-oriented paradigm in software development. Object Oriented Programming (OOP), a central notion to the development of the generic framework described in this paper, is a data-centered or an object-centered view of systems where the data or the objects and their behavior are closely linked13. An object is an abstraction of an entity within a system that we are trying to represent in terms of salient properties of the object that in turn can be used to adequately characterize the object. For example, an environment object can be represented in terms of certain environmental constituents, whose states in turn can be defined to characterize the state of the object, i.e., the environment.
In an object-centric view of the world, computation is behavior simulation. Objects represented as computational abstractions are simulated complete with their characteristics. Once the abstraction has been adequately characterized, other objects can be derived from the abstraction thus created and can be allowed to inherit the properties already specified for the abstraction. Here is the biggest reason for using a generic framework for problem-solving: Once the framework has been specified for a class of problems, all problems that fit into the class can be characterized within the framework, without having to re-create all the objects and their properties, with their links to the world (interface and behavior). Such an approach is also very efficient since it is very self-contained. Objects within the framework are responsible for their behavior. However, the framework provides a concrete basis for defining this behavior and in extending the chain of behavioral links. The state of being self-contained that is inherent to good object-based systems is termed as encapsulation. Inheritance allows us to derive new objects from an existing class definition and encapsulation allows defining the limits of access an object can provide to other objects.
The central notions of the generic frameworks can be represented as follows:
A schematic representing the arrangement of objects in the generic framework for materials and corrosion problem-solving is given in Figure 1. Two key concepts in the generic framework are templates and consultations. A template is a collection of related objects, specified so that it can represent a specific domain. Figure 2 shows a typical template created using the generic framework.

Figure 1 - Generic framework for materials and corrosion problem-solving

Objects within a template are typically characterized in terms of parameters. Parameters are variables whose states define the state of an object. An environment object defined in terms of specific parameters is shown in Figure 3. Parameters are defined in terms of a relative importance number (on a numerical scale of 1-100) and a set of data points typically representing the relevant range of values for that parameter. Each parameter is defined in terms of value-rank pairs which map specific data values of a parameter on to an interval scale of 1-10. A template can be used to define any number of new objects or inherit objects from an existing template or the object library. Each object can be defined in terms of any number of parameters, as shown in Figure 2. Further, each parameter may be represented in terms of value-rank pairs that allow mapping of parameter values to an interval scale in order to facilitate object evaluation over a range of parameter values in a template.

Value-rank pairs in conjunction with the relative importance number define the quantitative contribution of a parameter towards the state of an object. A template can be specified in terms of any number of independent or inter-related objects. They may share common parameters or objects. An object in a template can also be a parameter for another object in the same template. For example, it is possible to define a production environment template, in terms of three objects, i.e., system pH, environment and material. The system pH, a function of acid gases CO2 and H2S in production environments, shares common parameters with the environment object and is itself a parameter in the environment object where as the material object can be totally independent of the pH and environment objects.
A consultation is an instance of a template used to map parametric values to define a quantitative state for the objects in a template and in doing so, the state of a template. A consultation can exist only as a derivative of an open template characterized in terms of parametric data. A properly developed template can accurately represent problem-solving in specific domains. A consultation is simply an application of a template so created to obtain results and insights.
The overall scheme can be represented as follows:
Object1 = s1(a1.x1+a2.x2......an.xn)
Object2 = s2(b1.y1+b2.y2......bn.yn)
Object1 = s3(c1.z1+c2.z2......cn.zn)
where a1, a2...an, b1, b2...bn are relative importances for different parameters specified as a percentage for each object and x1....xn, y1....yn normalized values for the corresponding parameter.
3. As mentioned earlier, x1....xn, y1....yn are values for parameters corresponding to each object on a normalized scale. They are obtained as follows: consider the environment object shown in Figure 2. Figure 2 also shows normalized values for the parameter H2S on an interval scale of 1-10. Based on the data specified (as shown in the graph in Figure 2), the system would determine the corresponding intercept for a given parameter value (In this case any value of H2S between 1 and 100 psia would be interpolated to provide a normalized value for the parameter.
4. Data can be specified for different parameters as described in steps 2 and 3 above to arrive at an object characterization. Values for a parameter can also be selected from a list of choices and then mapped onto an interval scale of 1-10.
5. Different objects can be built or specified such that their relative state can be used to define the state of a template, i.e., the user can create an overall object rank and system rank that would represent the cumulative impact of the states of different objects in the system.
Several case studies have been developed to demonstrate the applicability of the generic framework to problems from different domains. Since the framework exploits the commonalities present in different types of corrosion and material problems, it is possible to use the generic framework to represent and characterize a variety of problems. Sample domains characterized in this paper are,
A template was created for each of the three systems in the generic
framework. A sample template for a coating selection system is
shown in Figure 4. The template in Figure 4 can be represented
in terms of information given in Table 1.
| Object | Parameters | Relative Importance, % |
| Application | Stability
Depth of film Curing speed Gloss | 90
100 80 60 |
| Performance | Hardness
Temperature Water resistance | 70
90 100 |

A template with relevant data for characterizing hydrogen embrittlement
cracking and galavanic severity is given in Figure 5 and Figure
6 respectively. A summary of these templates is given in tables
2 and 3.
|
| |
|
|
|
|

Figure 6 shows the results of a consultation using the template
for galvanic corrosion. A template is similar to an application
program in that the user can run multiple consultations using
an open template. The consultation is an instance of a template
object that in turn is defined by several objects. Figure 6 shows
a consultation window that can accept user input for different
parameters and provides a composite rank (in this case 78) for
the state of the template on a scale of 1-100. The graph provides
a pictorial representation of how the area-ratio effect parameter
can be represented on a normalized scale of 1-10. The consultation
wizard is the tool that allows either specification or modification
of a template. In Figure 6, an object to characterize galvanic
corrosion severity has been specified in terms of the five parameters
shown in the above table. The chart in Figure 1 shows the relationships
between different types of objects in the generic framework and
how they fit within a template. Figure 6 displays the same concept
when applied to a specific domain.

Object-based representations exploit the natural advantages available in systems wherein commonalities inherent to a class of problems can be captured in a template or a class which in turn can be used to create instances of the template. Such instances, called consultations in the proposed scheme, provide an easy way of characterizing states of a system or a template in terms of objects that characterize the system and parameters that characterize the objects.
Materials and corrosion problems typically involve representation of an environment to characterize the severity of corrosion in terms of certain system parameters (corrosivity) and/or characterization of behavior/resistance of a material in terms of material/metallurgical parameters. In fact, in most evaluation schema, the process is one described by the generic framework:
The Generic implementation framework described here offers several significant advantages in the development of problem-solving software systems:
The framework may not be usable in problems which cannot be structured in terms of objects and parameters as discussed in this paper. Domains such as control systems or on-line data monitoring, wherein data behavior cannot be predicted or represented accurately, customized development would be the appropriate approach.
While generic methods are useful for problems that can be structured in terms of the framework, their utility is questionable when not so. The current generic framework prototype can benefit from a more robust set of system integration and development tools. Future efforts would be directed towards further system development so as to provide database access and Object Linking and Embedding (OLE) capabilities to the generic software system.
Development of software systems to automate materials and corrosion problem-solving is a significant task from a stand point of the large number of parametric effects and interactions that need to be captured. A generic computer-based framework has been implemented as a Windows-based tool to characterize materials and corrosion problems as well as automate problem-solving. The generic framework facilitates rapid development of software system prototypes and case studies have been presented to demonstrate the efficacy of the generic framework implementation.
The author would like to acknowledge the contribution of Dr. Russell Kane at CLI International, Inc. for his insightful comments and review during the development and implementation of the generic framework.