This paper introduces NiHu, a C++ template library for boundary element methods (BEM). The library is capable of computing the coefficients of discretised boundary integral operators in a generic way with arbitrarily ...
详细信息
This paper introduces NiHu, a C++ template library for boundary element methods (BEM). The library is capable of computing the coefficients of discretised boundary integral operators in a generic way with arbitrarily defined kernels and function spaces. NiHu'S template core defines the workflow of a general BEM algorithm independent of the specific application. The core provides expressive syntax, based on the operator notation of the BEM, reflecting the mathematics behind boundary elements in the C++ source code. The customisable Component library contains elements specific to particular applications such as different numerical integration techniques and regularisation methods. The library can be used for creating a standalone C++ application using external open source libraries, or compiling a Matlab tool-box through the MEX interface. By massively exploiting C++ template metaprogramming, NiHu generates optimised codes for specific applications, including heterogeneous problems. The paper introduces the main concepts of the novel development, demonstrates its versatility and flexibility and compares the implementation's performance to that of other open source projects. (C) 2014 Elsevier Ltd. All rights reserved.
Refactoring is recognized as an essential practice in the context of evolutionary and agile software development. Recognizing the importance of the practice, modern IDEs provide some support for low-level refactorings...
详细信息
Refactoring is recognized as an essential practice in the context of evolutionary and agile software development. Recognizing the importance of the practice, modern IDEs provide some support for low-level refactorings. A notable exception in the list of supported refactorings is the "Extract Class" refactoring. which is conceived to simplify large, complex, unwieldy and less cohesive classes. In this work, we describe a method and a tool, implemented as an Eclipse plugin, designed to fulfill exactly this need. Our method involves three steps: (a) recognition of Extract Class opportunities. (b) ranking of the identified opportunities in terms of the improvement each one is anticipated to bring about to the system design, and (c) fully automated application of the refactoring chosen by the developer. The first step relies on an agglomerative clustering algorithm, which identifies cohesive sets of class members within the system classes. The second step relies on the Entity Placement metric as a measure of design quality. Through a set of experiments we have shown that the tool is able to identify and extract new classes that developers recognize as "coherent concepts" and improve the design quality of the underlying system. (C) 2012 Elsevier Inc. All rights reserved.
C++ [1, 2] extends a modern, general purpose programming language into the object-oriented programming paradigm. The language ameliorates disadvatanges of C while introducing new problems. Advantages and disadvantages...
详细信息
C++ [1, 2] extends a modern, general purpose programming language into the object-oriented programming paradigm. The language ameliorates disadvatanges of C while introducing new problems. Advantages and disadvantages of traditional C [3, 4] have been discussed in [5]. This paper assesses C++, examining why it is better general purpose programming langauge. Since C++ is “object-oriented” we consider how well it implements that metaphor. In this paper we assume the reader has a working knowledge of the C programming language. Section 1 briefly enumerates advantages and disadvantages of C to provide a context for assessing C++. In Section 2 we describe new C++ features and discuss ways they ameliorate shortcomings of C. Section 3 describes philosophical and practical problems with C++. The last section assesses C++ as a successor to C.
In this paper, we present a symbolic approach to automating the elaboration of numerical tools for the simulation of physical processes using the finite element method. We aim at developing a generic environment to au...
详细信息
In this paper, we present a symbolic approach to automating the elaboration of numerical tools for the simulation of physical processes using the finite element method. We aim at developing a generic environment to automate discretization schemes in the context of PDEs. The approach is implemented in a consistent object-oriented tool built in Java. We propose a symbolic environment to automatically build the symbolic forms of elemental contributions corresponding to a variational formulation. These contributions are automatically introduced into a classical simulation tool. The basic object-oriented framework covering the elaboration of the elemental contributions derived from the weak statement is briefly discussed. The approach can be naturally extended to any discretization model in space or time. This approach is illustrated by the example of hyperelasticity. (C) 2016 Elsevier Ltd. All rights reserved.
HyperReal is an object-based programming paradigm which introduces a time-driven control model as a primitive mechanism. A system consists of a collection of actors which are not aware of timing issues. Timing is spec...
详细信息
HyperReal is an object-based programming paradigm which introduces a time-driven control model as a primitive mechanism. A system consists of a collection of actors which are not aware of timing issues. Timing is specified at a programming-in-the-large level, thus improving modularity and re-usability. The paper discusses the rationale for this approach;introduces HR2, an Oberon-based subset of HyperReal;and presents a set of examples which highlight how HR2 can be used for supporting different control disciplines.
The Trust4All project aims to define an open, component-based framework for the middleware layer in high-volume embedded appliances that enables robust and reliable operation, upgrading and extension. To improve the a...
详细信息
The Trust4All project aims to define an open, component-based framework for the middleware layer in high-volume embedded appliances that enables robust and reliable operation, upgrading and extension. To improve the availability of each individual application in a Trust4All system, a runtime configurable fault management mechanism (FMM) is proposed, which detects deviations from given service specifications by intercepting interface calls. When repair is necessary, FMM picks a repair action that incurs the best tradeoff between the success rate and the cost of repair. Considering that it is rather difficult to obtain sufficient information about third party components during their early stage of usage, FMM is designed to be able to accumulate knowledge and adapts its capability accordingly.
Cloud computing has paved the way for advance of IT-based on demand services. This technology helps decrease capital expenditure and operation costs, solve scalability issue and many more user and provider constraints...
详细信息
Cloud computing has paved the way for advance of IT-based on demand services. This technology helps decrease capital expenditure and operation costs, solve scalability issue and many more user and provider constraints. However, development and deployment of distributed applications on cloud environment becomes a more and more complex task. Cloud users must spend a lot of time to prepare, install and configure their applications on clouds. In addition, after development and deployment, the applications almost cannot move from one cloud to another due to the lack of interoperability between them. To address these problems, in this paper we present a novel development and deployment framework for cloud distributed applications/services. Our approach is based on abstraction and object-oriented programming technique, allowing users to easily and rapidly develop and deploy their services into cloud environment. The approach also enables service migration and interoperability among the clouds.
Late binding and subtyping create run-time overhead for object-oriented languages, especially in the context of both multiple inheritance and dynamic loading, for instance for JAVA interfaces. In a previous article, w...
详细信息
Late binding and subtyping create run-time overhead for object-oriented languages, especially in the context of both multiple inheritance and dynamic loading, for instance for JAVA interfaces. In a previous article, we proposed a novel approach based on perfect hashing and truly constant-time hashtables for implementing subtype testing and method invocation in a dynamic loading setting. In this first study, we based our efficiency assessment on Driesen's abstract computational model for the time aspect, and on large-scale benchmarks for the space aspect. The conclusions were that the technique was promising but required further research in order to assess its scalability. This article presents some new results on perfect class hashing that enhance its interest. We propose and test both new hashing functions and an inverse problem that amounts to selecting the best class identifiers in order to minimize the overall hashtable size. This optimizing approach is proven to be optimal for single-inheritance hierarchies. Experiments within an extended testbed with random class loading and under cautious assumptions about what should be a sensible class-loading order show that perfect class hashing scales up gracefully, especially on JAVA-like multiple-subtyping hierarchies. Furthermore, perfect class hashing is implemented in the PRM compiler testbed, and compared here with the coloring technique, which amounts to maintaining the single-inheritance implementation in multiple inheritance. The overall conclusion is that the approach is efficient from both time and space standpoints with the bit-wise and hashing function. In contrast, the poor time efficiency of modulus hashing function on most processors is confirmed. Copyright (C) 2010 John Wiley & Sons, Ltd.
A general-purpose object-oriented fatigue tool set has been designed and implemented that can serve not only as a stand-alone code for preliminary design studies, but also as a foundation for highly complex industrial...
详细信息
A general-purpose object-oriented fatigue tool set has been designed and implemented that can serve not only as a stand-alone code for preliminary design studies, but also as a foundation for highly complex industrial 'in-house' fatigue codes. Due to their programming structure, these tools may easily be modified to include additional fatigue prediction methods. Three component libraries have been created to address three topics in fatigue analysis: (1) fatigue material property definition;(2) basic fatigue calculations;and (3) cumulative damage calculations. The initial programming framework has been supplemented, demonstrating the expandability of the libraries. The component libraries have been incorporated into three programs to verify their capabilities and demonstrate their use.
This research paper presents a prototype object-oriented and rule-based system for product cost modelling and design for automation at an early design stage. The developed system comprises a computer aided design (CAD...
详细信息
This research paper presents a prototype object-oriented and rule-based system for product cost modelling and design for automation at an early design stage. The developed system comprises a computer aided design (CAD) solid modelling system, a material selection module, a knowledge-based system (KBS), a process optimization module, a design for assembly module, a cost estimation module and a user interface. The system development process has passed through four major steps: constructing the knowledge-based and process optimization system;developing a design for assembly module;integrating the KBS with both a material selection database and the CAD system;developing and implementing a fuzzy logic approach to generate reliable estimation of cost and to handle the uncertainty in the cost estimation model that cannot be addressed by traditional analytical methods. Two manufacturing processes, namely machining and injection moulding processes, were considered in the developed system. The main function of the system, besides estimating the product cost, is to generate initial process planning, including the generation and selection of machining processes, their sequence and their machining parameters, and to recommend the most economical assembly technique for a product and provide design improvement suggestions based on a design feasibility technique. In addition, a feature-by-feature cost estimation report is generated using the proposed system to highlight the features of high manufacturing cost. Two case studies were used to validate the developed system.
暂无评论