isaar / msolve Goto Github PK
View Code? Open in Web Editor NEWOpen source numerical solver for computational mechanics problems
License: Apache License 2.0
Open source numerical solver for computational mechanics problems
License: Apache License 2.0
A database with the SSFEM coefficients for the various M and p needs to be implemented (@isaar/stochastic)
MSolve needs to solve contact problems as well
The Particle Swarm method needs to be implemented (@isaar/opti)
A slip model for embedded elements needs to be implemented (@isaar/multiscale)
@GoatOfRafin @dimtsap @SerafeimBakalakos
The materials classes should probably not be part of the FEM project, since all they should get as input/output are strains/stresses, which are independent of the finite element method. Therefore, they could be reused by all formulations solving problems pertaining to material stresses/strains (as opposed to for example thermal state), and could be used by isogeometric or meshless or xfem formulations.
@isaar/nl
Addition of co-rotational (non linear) beam element based on Crisfield's formulation
References:
Elements need to be enhanced with geometric non-linearity (@isaar/nl)
Shells, Quads, Hexa
Analysis of stochastic systems using VRF (@isaar/stochastic)
Collect all additions to MSolve.Numerical of each team member in order to be evaluated and integrated in v0.2
Incorporate xUnit for the introduction of benchmark examples for testing the code
Shell elements need to be implemented (@isaar/formulation)
There should be implemented a number of different error estimators (priori or posteriori).
Also in the same category, a solution comparision:
Error of a solution compared to another solution regarded as an exact (same problem different mesh).
A special case of the above, comparison of a solution when the exact solution is given as a function.
(example given: L2 norm)
The estimator should give estimations of the error locally, which would be necessary for any implementation of adaptive refinement.
-Dirichlet bc
-Neumann bc
-Transformation of tractions and to equivalent nodal forces
The Bathe 2-step algorithm needs to be implemented for implicit dynamics
Explicit dynamics need to be implemented
Implementation of random fields using polynomial chaos (@isaar/stochastic)
Hexa8u8pWithStochasticMaterial
accepts as input an instance of IStochasticFiniteElementMaterial
, but immediately downcasts it to IFiniteElementMaterial3D
(it stores the material in the parent class Hexa8u8p
, which is not related to stochasticity). Therefore all the extra information pertaining to stochasticity is lost when the material is stored, and when it is used in the child class it needs to be explicitly cast back to IStochasticFiniteElementMaterial
.
Class StochasticElasticMaterial3D
implements both IStochasticFiniteElementMaterial
and IFiniteElementMaterial3D
. IStochasticFiniteElementMaterial
implements IFiniteElementMaterial3D
, therefore I think implementing both interfaces may be redundant.
Implementation of random fields using Karhunen-Loeve expansion (@isaar/stochastic)
Refinement types
Method to calculate the outer product of two vectors. Basically it represents the tensor product of two first order tensors (vectors). Also known as dyadic product.
References:
During the porting of my code from Java to C# and MSolve specifically, I have noted that many parts of the Preprocessors apart from Elements are almost identical and thus can probably be refactored. These similar code parts can be split into the following categories:
In this category belong the Entities folder of the two methods. The first reason why an abstraction is needed is that UQ/Optimization/Logging projects need to reference and alter the Model of each method. In the existing implementation, only FEM are supported while minimal changes are needed to extend the functionality. A comparison is given below:
FEM | IGA |
---|---|
Model | Model |
Subdomain | Patch |
Element | Element |
Cluster | Cluster |
Node | Control Point |
NodalLoad | Control Point Load |
Actually, isogeometric entities can be considered as an extension of the FEM ones in most cases.
In a similar fashion Faces and Edge, where Loads and Boundary Condition are applied coexist as a concept in both cases but are applied in Elements in FEM while Patches in IGA.
Provided that Nodes - Control Points, Elements and Subdomain-Patches can be handled in a similar fashion then the following parts of code become identical and thus much code rewriting can be spared. For example interfaces and simple classes can be unified:
FEM | IGA |
---|---|
IFiniteElementDOFEnumerator | IIsogeometricDOFEnumerator |
IFiniteElement | IIsogeometricElement |
IStructuralFiniteElement | IStructuralIsogeometricElement |
GenericDOFEnumerator | GenericDOFEnumerator |
GlobalMatrixAssemblerSkyline | GlobalMatrixAssemblerSkyline |
In this category, we had identical code such as the Materials(2D-3D etc) which had no difference between the two methods.
The arc length method needs to be implemented
Displacement control method for the solution of nonlinear systems of equations for multi-point constraints.
Possible types of Loads
Additional Needed Implementation
Implementation and benchmarking
1.Spectral representation
2.Karhunen Loeve
3.Polynomial chaos
4.VRF MonteCarlo
Arc length method for the solution of nonlinear systems of equations according to Crisfield theory.
Hierarchical homogenization algorithm needs to be implemented (@isaar/multiscale)
Make any actions necessary for the project to be compatible with VS2017
Possible types of BC
Additional Needed Implementation
A series of RVEs with 1k, 10K, 100K, and 1M dof to be introduced with 2 sheets of graphene, subject to linear and non-linear anlyses with standard and domain decomposition solvers.
The genetic algorithm needs to be implemented (@isaar/opti)
Methods to be added that support the following:
There is a bug concerning I/O streams with respect to
using (sw = File.CreateText(fileNameTimes))
System.IO.IOException
HResult=0x800704C8
Message=The requested operation cannot be performed on a file with a user-mapped section open
@isaar/core
Modify ElasticMaterial class:
1.rename IFiniteElementMaterial to IIsotropicMaterial to reflect that it refers to the isotropic material case
2.rename IFiniteElementMaterial3D to IStructuralMaterial3D
3.modify IIsotropicMaterial to implement IStructuralMaterial (and not the other way around), move properties pertaining to the material in general from IIsotropicMaterial to IStructuralMaterial
4.make IStructuralMaterial and IIsotropicMaterial immutable (remove the setters from the properties)
5.check if material argument in different element types corresponds to the correct updated interfaces (e.g. beam elements should contain an instance of an IIsotropicMaterial object and continuum elements should contain an instance of an IStructuralMaterial object)
Appropriate benchmark examples and possibly analytical solutions for each element type.
Literature review for benchmarking.
@GoatOfRafin @SerafeimBakalakos
The benchmarks folder in Optimization project probably needs to be incorporated into the Tests project, along with the OptimizationTests project.
Implementation of random fields using spectral representation (@isaar/stochastic)
The FE2 method needs to be implemented (@isaar/multiscale)
Entities
Model for IGA
Problem
Plane stress elements need to be implemented (@isaar/formulation)
Each of the C# files we develop should be verified with Unit Testing before before a pull request or even merge with the main code:
Summarizing some of the basic of unit testing techniques as described in Pragmatic Unit Testing by A. Hunt , D. Thomas the code should be validated for the following:
For a more info on how to implement tests check:
https://msdn.microsoft.com/en-us/library/ms182532.aspx
Connection with simple input file is needed in order to easily assign problem geometry and various properties. Write to output file is needed for reviewing the results and possible connection with other post processing programs.
Corotational geometrically nonlinear Beam element in 2D.
A gradient-based algorithm for optimization needs to be implemented (@isaar/opti)
Does the library is capable to solve an elastic-plastic (no contact) problem, where the hardening curve is given by a stress/strain relation? In particular I am interested in tensile and compression tests.
The way this class is designed does not facilitate spectral representation methodology/Brute Force Monte Carlo, which is a basis for stochastic benchmarking. Should I modify the class which in turn will effect its functionality with respect to other stochastic anlyzers (ie VRFMonteCarloAnalyzer) or create a new one?
VRFMonteCarloAnalyzerwithStochasticMaterial
PowerSpectrumTargetEvaluator
1.line 105
2. it should be in the providers file preprocessor namespace not the analyzers namespace
The ISAAR.MSolve.SamplesConsole
project needs to be extended with more examples which will feature all of the available functionalities that MSolve provides. (@isaar/core)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.