The single phase diffusion and homogenization model both assume 1D cartesian coordinates. It would be nice to extend this feature to other coordinate systems (radial/cylindrical and spherical). In addition, extended to 2D or 3D meshes would work as well.
My preferred solution would be to have Mesh class, that each coordinate system will inherit (ex. CartesianMesh, SphericalMesh, 3DMesh). These objects will have the necessary implementations to compute fluxes, time interval and updating composition, while all the diffusion models have to output is a diffusivity or equivalent.
Example pseudocode of what I'm hoping for
thermo = Thermodynamics(...)
mesh = RadialMesh(rlimits, nodes)
model = DiffusionModel(thermo, mesh, other parameters)
model.solve(time)
The single phase diffusion and homogenization model both assume 1D cartesian coordinates. It would be nice to extend this feature to other coordinate systems (radial/cylindrical and spherical). In addition, extended to 2D or 3D meshes would work as well.
My preferred solution would be to have
Meshclass, that each coordinate system will inherit (ex.CartesianMesh,SphericalMesh,3DMesh). These objects will have the necessary implementations to compute fluxes, time interval and updating composition, while all the diffusion models have to output is a diffusivity or equivalent.Example pseudocode of what I'm hoping for