An approach to the computer aided analysis of flexible multibody systems using object-oriented programming methods is presented. The aim is to support the rapid generation of specialized programs by providing an open,...
详细信息
An approach to the computer aided analysis of flexible multibody systems using object-oriented programming methods is presented. The aim is to support the rapid generation of specialized programs by providing an open, extensible C++ toolkit. This toolkit contains modules (C++ classes) which allow the declaration and manipulation of multibody components such as joints, bodies and actuators in an intuitive manner. New components (e.g., new finite elements) are easily introduced to extend the toolkit. The equations of motion for a multibody system consisting of these components are formulated by direct application of the principle of virtual work using symbolic techniques. It is possible to use absolute as well as relative coordinates in a problem-dependent manner.
We describe the object-oriented implementation of a higher-order finite-difference density-functional code in Fortran 90. object-oriented models of grid and related objects are constructed and employed for the impleme...
详细信息
We describe the object-oriented implementation of a higher-order finite-difference density-functional code in Fortran 90. object-oriented models of grid and related objects are constructed and employed for the implementation of an efficient one-way multigrid method we have recently proposed for the density-functional electronic-structure calculations. Detailed analysis of performance and strategy of the one-way multigrid scheme will be presented. (C) 2000 Elsevier Science B.V. All rights reserved.
We present an object-oriented modeling frame for simulating crack propagation due to cyclic loadings. Central to the approach is that the crack propagates when a user-defined propagation criterion is fulfilled, i.e., ...
详细信息
We present an object-oriented modeling frame for simulating crack propagation due to cyclic loadings. Central to the approach is that the crack propagates when a user-defined propagation criterion is fulfilled, i.e., the crack propagation rate is not prescribed but predicted. The approach utilizes the commercial finite element software package ABAQUS and its associated Python based scripting interface. The crack propagation is simulated by a generalized node release technique. If the propagation criteria are satisfied in the end of a cycle, the crack is allowed to propagate. The incremental crack growth is inferred from an iterative investigation of the propagation criteria. The propagation criteria are user-defined, and can be based on any parameter or parameter set that can be obtained from the simulations. We illustrate the developed modeling frame by two benchmark problems, where the propagation criterion is based on the dissipated energy in the vicinity of the crack tip. (c) 2008 Elsevier Ltd. All rights reserved.
Multiple dispatch - the selection of a function to be invoked based on the dynamic type of two or more arguments - is a solution to several classical problems in object-oriented programming. Open multi-methods general...
详细信息
Multiple dispatch - the selection of a function to be invoked based on the dynamic type of two or more arguments - is a solution to several classical problems in object-oriented programming. Open multi-methods generalize multiple dispatch towards open-class extensions, which improve separation of concerns and provisions for retroactive design. We present the rationale, design, implementation, performance, programming guidelines, and experiences of working with a language feature, called open multi-methods, for C++. Our open multi-methods support both repeated and virtual inheritance. Our call resolution rules generalize both virtual function dispatch and overload resolution semantics. After using all information from argument types, these rules can resolve further ambiguities by using covariant return types. Care was taken to integrate open multi-methods with existing C++ language features and rules. We describe a model implementation and compare its performance and space requirements to existing open multi-method extensions and work-around techniques for C++. Compared to these techniques, our approach is simpler to use, catches more user mistakes, and resolves more ambiguities through link-time analysis, is comparable in memory usage, and runs significantly faster. In particular, the runtime cost of calling an open multi-method is constant and less than the cost of a double dispatch (two virtual function calls). Finally, we provide a sketch of a design for open multi-methods in the presence of dynamic loading and linking of libraries. (C) 2009 Elsevier B.V. All rights reserved.
The object-oriented programming environment Smalltalk is used to implement a tool for modeling and simulation of ecological systems. This PC-based tool makes it possible, and easy, to represent individuals explicitly ...
详细信息
The object-oriented programming environment Smalltalk is used to implement a tool for modeling and simulation of ecological systems. This PC-based tool makes it possible, and easy, to represent individuals explicitly in the simulation of ecological systems. This PC-based tool makes it possible, and easy, to represent individuals explicitly in the simulation, and to integrate the individual-based approach with a traditional population/concentration-based approach. object-oriented programming is used to allow for an efficient development of models. The properties of Smalltalk are exploited to make testing and investigation of the models occur interactively, supported by a user-friendly interface. In the paper, modeling and simulation concepts and elements of object-oriented programming as they relate to an individual-based approach, are introduced. The simulation extension in question (EcoTalk) is described. Two applications that make use of EcoTalk are presented, both related to population-dynamics. The discussion centers on practical implications of the approach, e.g. the system characteristics that can be expressed in EcoTalk. An indication of the performance of an application is given. It is concluded that, at present, EcoTalk can be used for medium-sized applications.
In this paper we present a new one-dimensional full electromagnetic relativistic hybrid plasma model. The full kinetic particle-in-cell (PIC) and hydrodynamic model have been combined in the single hybrid plasma code ...
详细信息
In this paper we present a new one-dimensional full electromagnetic relativistic hybrid plasma model. The full kinetic particle-in-cell (PIC) and hydrodynamic model have been combined in the single hybrid plasma code H-VLPL (hybrid virtual laser plasma laboratory). The semi-implicit algorithm allows to simulate plasmas of arbitrary densities via automatic reduction of the highest plasma frequencies down to the numerically stable range. At the same time, the model keeps the correct spatial scales like the plasma skin depth. We discuss the numerically efficient implementation of this model. Further, we carefully test the hybrid model validity by applying it to a series of physical examples. The new mathematical method allows to overcome the typical time step restrictions of explicit PIC codes. (C) 2008 Elsevier B.V. All rights reserved.
Hydroreservoirs usually serve two main purposes: hydropower production and water consumption. The great flexibility, low operating costs, and low carbon impact of hydroturbines turns them into a desirable technology i...
详细信息
Hydroreservoirs usually serve two main purposes: hydropower production and water consumption. The great flexibility, low operating costs, and low carbon impact of hydroturbines turns them into a desirable technology in the generator mix of power systems. In addition, sustainability and environmental concerns support their use in current power systems, along with other renewable energy sources like wind and solar energy. However, the stochastic nature of river inflows hinders their long-term use and hints at the need to use planning tools. Furthermore, it also requires the use of planning tools in order to balance present and future requirements. This work presents a simulation tool that is employed at Iberdrola to help in the preparation of medium-term hydroelectric production schedules. The main objective of the simulation is to follow the production guidelines given by a long-term hydrothermal problem, while avoiding spillages and failures to fulfill water release agreements. In order to achieve this, the simulation algorithm is structured around several phases that aim at coordinating the operation of all the elements in the basin. This way, the simulation tool provides the operator a way to evaluate the outcome from forecasts of either water inflows or future operation situations. Some of the potential applications of this simulation tool are shown in this work: general simulation in order to know in advance the consequences of possible inflow forecasts, and how to assess several maintenance schedules and different upgrade plans.
This paper presents an extensible object model for gas turbine engine performance simulation. The extension method for gas path balancing is analyzed and a new design rationale is developed to overcome deficiencies of...
详细信息
This paper presents an extensible object model for gas turbine engine performance simulation. The extension method for gas path balancing is analyzed and a new design rationale is developed to overcome deficiencies of the traditional component-based object modeling method. A class framework implementing this rationale is described and the dynamic performance of a three-shaft gas turbine engine is simulated to evaluate the model's effectiveness. (C) 2000 Elsevier Science Ltd. All rights reserved.
As software evolves, data types have to be extended, possibly with new data variants or new operations. object-oriented design is well-known to support data extensions well. In fact, most popular books showcase data e...
详细信息
As software evolves, data types have to be extended, possibly with new data variants or new operations. object-oriented design is well-known to support data extensions well. In fact, most popular books showcase data extensions to illustrate how objects adequately support software evolution. Conversely, operation extensions are typically better supported by a functional design. A large body of programming language research has been devoted to the challenge of properly supporting both kinds of extensions. While this challenge is well-known from a language design standpoint, it has not been studied empirically. We perform such a study on a large sample of Smalltalk projects (over half a billion lines of code) and their evolution over more than 130,000 committed changes. Our study of extensions during software evolution finds that extensions are indeed prevalent evolution tasks, and that both kinds of extensions are equally common in object-oriented software. We also discuss findings about: the evolution of the kinds of extensions over time;the viability of the Visitor pattern as an object-oriented solution to operation extensions;the change-proneness of extensions;and the prevalence of extensions by third parties. This study suggests that object-oriented design alone is not sufficient, and that practical support for both kinds of program decomposition approaches are in fact needed, either by the programming language or by the development environment.
'Extract Method' is considered one of the most frequently applied and beneficial refactorings, since the corresponding Long Method smell is among the most common and persistent ones. Although Long Method is co...
详细信息
'Extract Method' is considered one of the most frequently applied and beneficial refactorings, since the corresponding Long Method smell is among the most common and persistent ones. Although Long Method is conceptually related to the implementation of diverse functionalities within a method, until now, this relationship has not been utilized while identifying refactoring opportunities. In this paper we introduce an approach (accompanied by a tool) that aims at identifying source code chunks that collaborate to provide a specific functionality, and propose their extraction as separate methods. The accuracy of the proposed approach has been empirically validated both in an industrial and an open-source setting. In the former case, the approach was capable of identifying functionally related statements within two industrial long methods (approx. 500 LoC each), with a recall rate of 93 percent. In the latter case, based on a comparative study on open-source data, our approach ranks better compared to two well-known techniques of the literature. To assist software engineers in the prioritization of the suggested refactoring opportunities the approach ranks them based on an estimate of their fitness for extraction. The provided ranking has been validated in both settings and proved to be strongly correlated with experts' opinion.
暂无评论